So, 2022 is now done and dusted. I was really enjoying the puzzles. Always feels a bit empty when done.
I made a rod for my own back again this year when well into Advent, I noticed all my solutions were all running in around a few milliseconds.
So, personal challenge... Can I get the runtime of all puzzles combined to be less than one second? I also mentioned this in the Just Eat Takeaway AoC Slack channel, like a muppet.
I started getting worried when the puzzles got more complicated and the times crept up quickly. I think at one point the longest running was around the 8 - 10 minute mark!
Anyway, some determined optimisation later and these are the current statistics. Not quite there, but not far off.
I will cover optimisations in future blog posts.
Hardware
2020 16" Intel MacBook Pro with TouchBar
- Intel Core i9-9980HK
- Base Speed: 2.40 GHz
- Max Speed: 5.0 GHz
- 8 Cores
- 16 Logical Processors
-
Cache:
- L1: 512 KB
- L2: 2.0 MB
- L3: 16.0 MB
- 32 GB RAM
- Apple SSD
Results
2022 1.1: 0ms Calorie counting 2022 1.2: 1ms 2022 2.1: 0ms Rock paper scissors 2022 2.2: 0ms 2022 3.1: 0ms Rucksack reorganization 2022 3.2: 0ms 2022 4.1: 0ms Camp cleanup 2022 4.2: 0ms 2022 5.1: 0ms Supply stacks 2022 5.2: 0ms 2022 6.1: 0ms Tuning trouble 2022 6.2: 0ms 2022 7.1: 2ms No space left on device 2022 7.2: 1ms 2022 8.1: 1ms Treetop tree house 2022 8.2: 1ms 2022 9.1: 2ms Rope bridge 2022 9.2: 3ms 2022 10.1: 0ms Cathode-Ray tube 2022 10.2: 0ms 2022 11.1: 1ms Monkey in the middle 2022 11.2: 8ms 2022 12.1: 8ms Hill climbing algorithm 2022 12.2: 5ms 2022 13.1: 0ms Distress signal 2022 13.2: 1ms 2022 14.1: 3ms Regolith reservoir 2022 14.2: 10ms 2022 15.1: 0ms Beacon exclusion zone 2022 15.2: 24ms 2022 16.1: 39ms Proboscidea volcanium 2022 16.2: 624ms 2022 17.1: 2ms Pyroclastic flow 2022 17.2: 3ms 2022 18.1: 1ms Boiling boulders 2022 18.2: 3ms 2022 19.1: 81ms Not enough minerals 2022 19.2: 18ms 2022 20.1: 56ms Grove positioning system 2022 20.2: 258ms 2022 21.1: 1ms Monkey math 2022 21.2: 0ms 2022 22.1: 2ms Monkey map 2022 22.2: 2ms 2022 23.1: 11ms Unstable diffusion 2022 23.2: 758ms 2022 24.1: 64ms Blizzard basin 2022 24.2: 164ms 2022 25.1: 0ms Full of hot air ------- 2158ms
I could always throw them at a beefy AWS instance, but that's not the spirit of my challenge. Has to be on my personal laptop.
I'll still try to eke some more performance out, aiming for the magical 1 second, but as this year's AoC is finished now... in my view... challenge failed.
As usual, the source code is in my GitHub repo.
Anyway, stick around and I'll add some posts about optimisations, some other things I did during the challenge, and problems I found particularly tricky.
