diff options
Diffstat (limited to '2018/src/main.rs')
-rw-r--r-- | 2018/src/main.rs | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/2018/src/main.rs b/2018/src/main.rs index 447005e..3e44615 100644 --- a/2018/src/main.rs +++ b/2018/src/main.rs @@ -2,7 +2,6 @@ use std::io; use std::io::{BufRead, BufReader, Error, ErrorKind, Read}; use std::fs::File; use std::process::exit; -use std::time::Instant; use argparse::{ArgumentParser, StoreTrue, Store}; mod day1; @@ -19,6 +18,7 @@ mod day11; mod day12; mod day13; mod day14; +mod benchmark; static NUM_DAYS: i32 = 14; @@ -50,23 +50,13 @@ fn file_for_day(day: i32) -> io::Result<BufReader<File>> { } fn benchmark_day(day: i32) -> io::Result<f64> { - let num_iters = 100; - let mut input = Vec::new(); file_for_day(day)?.read_to_end(&mut input)?; - let start = Instant::now(); - for _i in 0..num_iters { - day_switch(day, BufReader::new(&input[..]))?; - } - let end = Instant::now(); - - let dur = (end - start) / num_iters; - let secs = dur.as_secs() as f64 + dur.subsec_micros() as f64 / 1000000.0; - - println!("Day {}: {} secs", day, secs); + let res = benchmark::benchmark(|| day_switch(day, BufReader::new(&input[..])).unwrap()); + println!("Day {}: {}", day, res); - Ok(secs) + Ok(res.duration) } fn benchmark_all_days() -> io::Result<()> { |