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.