summaryrefslogtreecommitdiff
path: root/2018/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to '2018/src/main.rs')
-rw-r--r--2018/src/main.rs18
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<()> {