From 0192b90ef99e937b10bc81ba20497467409869e2 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 12 Dec 2022 05:26:51 -0500 Subject: add combined benchmark --- benches/2020.rs | 19 +++++++++++++++++++ benches/2021.rs | 35 +++++++++++++++++++++++++++++++++++ benches/2022.rs | 22 ++++++++++++++++++++++ benches/helpers/mod.rs | 15 +++++++++++++++ bin/stub-code | 1 + 5 files changed, 92 insertions(+) diff --git a/benches/2020.rs b/benches/2020.rs index 5135e5a..471ea4c 100644 --- a/benches/2020.rs +++ b/benches/2020.rs @@ -32,7 +32,26 @@ day!(2020, 8, day8); day!(2020, 9, day9); // NEXT DAY +fn bench_2020(c: &mut criterion::Criterion) { + c.bench_function("2020", |b| { + b.iter(|| { + day_combined!(2020, 1, day1); + day_combined!(2020, 2, day2); + day_combined!(2020, 3, day3); + day_combined!(2020, 4, day4); + day_combined!(2020, 5, day5); + day_combined!(2020, 6, day6); + day_combined!(2020, 7, day7); + day_combined!(2020, 8, day8); + day_combined!(2020, 9, day9); + // NEXT DAY COMBINED + }) + }); +} +criterion::criterion_group!(benches_2020, bench_2020); + criterion::criterion_main!( + benches_2020, bench_2020day1, bench_2020day2, bench_2020day3, diff --git a/benches/2021.rs b/benches/2021.rs index a5e0cc8..a1a8b55 100644 --- a/benches/2021.rs +++ b/benches/2021.rs @@ -80,7 +80,42 @@ day!(2021, 24, day24); day!(2021, 25, day25); // NEXT DAY +fn bench_2021(c: &mut criterion::Criterion) { + c.bench_function("2021", |b| { + b.iter(|| { + day_combined!(2021, 1, day1); + day_combined!(2021, 2, day2); + day_combined!(2021, 3, day3); + day_combined!(2021, 4, day4); + day_combined!(2021, 5, day5); + day_combined!(2021, 6, day6); + day_combined!(2021, 7, day7); + day_combined!(2021, 8, day8); + day_combined!(2021, 9, day9); + day_combined!(2021, 10, day10); + day_combined!(2021, 11, day11); + day_combined!(2021, 12, day12); + day_combined!(2021, 13, day13); + day_combined!(2021, 14, day14); + day_combined!(2021, 15, day15); + day_combined!(2021, 16, day16); + day_combined!(2021, 17, day17); + day_combined!(2021, 18, day18); + day_combined!(2021, 19, day19); + day_combined!(2021, 20, day20); + day_combined!(2021, 21, day21); + day_combined!(2021, 22, day22); + day_combined!(2021, 23, day23); + day_combined!(2021, 24, day24); + day_combined!(2021, 25, day25); + // NEXT DAY COMBINED + }) + }); +} +criterion::criterion_group!(benches_2021, bench_2021); + criterion::criterion_main!( + benches_2021, bench_2021day1, bench_2021day2, bench_2021day3, diff --git a/benches/2022.rs b/benches/2022.rs index b6ee3df..4838721 100644 --- a/benches/2022.rs +++ b/benches/2022.rs @@ -41,7 +41,29 @@ day!(2022, 11, day11); day!(2022, 12, day12); // NEXT DAY +fn bench_2022(c: &mut criterion::Criterion) { + c.bench_function("2022", |b| { + b.iter(|| { + day_combined!(2022, 1, day1); + day_combined!(2022, 2, day2); + day_combined!(2022, 3, day3); + day_combined!(2022, 4, day4); + day_combined!(2022, 5, day5); + day_combined!(2022, 6, day6); + day_combined!(2022, 7, day7); + day_combined!(2022, 8, day8); + day_combined!(2022, 9, day9); + day_combined!(2022, 10, day10); + day_combined!(2022, 11, day11); + day_combined!(2022, 12, day12); + // NEXT DAY COMBINED + }) + }); +} +criterion::criterion_group!(benches_2022, bench_2022); + criterion::criterion_main!( + benches_2022, bench_2022day1, bench_2022day2, bench_2022day3, diff --git a/benches/helpers/mod.rs b/benches/helpers/mod.rs index 7303ebf..aec8690 100644 --- a/benches/helpers/mod.rs +++ b/benches/helpers/mod.rs @@ -70,3 +70,18 @@ macro_rules! day { } }; } + +macro_rules! day_combined { + ($year:expr, $day:expr, $mod:ident) => {{ + $mod::part1( + $mod::parse(advent_of_code::parse::data($year, $day).unwrap()) + .unwrap(), + ) + .unwrap(); + $mod::part2( + $mod::parse(advent_of_code::parse::data($year, $day).unwrap()) + .unwrap(), + ) + .unwrap(); + }}; +} diff --git a/bin/stub-code b/bin/stub-code index 73d17eb..d3f218f 100755 --- a/bin/stub-code +++ b/bin/stub-code @@ -42,4 +42,5 @@ perl -pi -E"\$seen_part = 1 if /day!.*day$day\)/; if (!\$seen_part && /NEXT PART perl -pi -E"\$seen_mod = 1 if /mod day$day;/; if (!\$seen_mod && /NEXT MOD/) { say '#[path = \"../src/bin/$year/day${day}.rs\"]'; say 'mod day$day;'; }" benches/"$year".rs perl -pi -E"\$seen_day = 1 if /day!.*day$day\)/; if (!\$seen_day && /NEXT DAY/) { say 'day!($year, $day, day$day);'; }" benches/"$year".rs +perl -pi -E"\$seen_day_combined = 1 if /day_combined!.*day$day\)/; if (!\$seen_day_combined && /NEXT DAY COMBINED/) { say ' day_combined!($year, $day, day$day);'; }" benches/"$year".rs perl -pi -E"\$seen_group = 1 if /bench_${year}day${day},/; if (!\$seen_group && /NEXT GROUP/) { say ' bench_${year}day$day,'; }" benches/"$year".rs -- cgit v1.2.3-54-g00ecf