1. 41
  1. 4

    There’s a lot of unwrapping in the code, and I wonder if setting the panic strategy to abort would be useful for also making the resulting code leaner. Though we’re talking diminishing returns when it’s already pretty fast, it may be fun to measure.

    1. 2

      Interesting, I wasn’t aware of this option. Although it seems it’s only in nightly. I did try it, but the difference was about 3 or 4%. It’s something, but not massive either.

      1. 5

        Although it seems it’s only in nightly.

        panic=abort in Cargo.toml is fine on stable Rust.

        1. 1

          Oh nice, I didn’t know about it.

    2. 2

      Awesome! Great results. Thanks for linking my 2020 post as well.

      This year I’m down to 50ms, though I still have to finish the last two days. Sadly I’m busy. https://github.com/timvisee/advent-of-code-2021

      Funnily enough I did get better results with Dijkstra for day 15. I wonder which is better.

      1. 3

        woha, 50ms is very impressive, well done.

      2. 2

        I thought they included actually solving the puzzles in 1 sec (which woulda necessitated some sorta Watson-like problem scraper/parser/solver).

        1. 2

          I’ve also managed to keep my total runtime ~600ms - https://github.com/tumdum/aoc2021

          1. 1

            I enjoyed seeing your progress reports on IRC. I was trying to be as pythonic as I could, so it was fun to look on as people worked through with different goals. Especially “fast and in rust.”

            Out of curiosity, you’ve got a few of your AoC trees hosted on sr.ht, one on bitbucket and a couple on github. And the split is in a different order than the relative age of those services would explain… what drove your split there?

            1. 2

              I also find it very interesting seeing others approaches on irc.

              As far as my repos:

              2015 on sr.ht is I think just me dumping old code found on some hard drive in ~2020.

              Bitbucket is because some of the people on my private leaderboard used it and I wanted to fit in

              Using and paying for sr.ht was me trying to care about GitHub monopoly. Looks like I don’t really care in the end.

              Basically it’s mostly randomness :)

          2. 1

            Great write up! I like that you used AOC as prod to explore some ideas and approaches.