I worry about performance regressions a lot. We should always be getting more performant, not less.
So we made a benchmark system. It runs a bunch of tests on every version we build, and submits it to our backend. That way we can track the performance of each version, and see how it changed over time.
If performance has gotten worse, it's easy to go back and find the version that fucked it, and revert.
If we're trying to make performance better, it's now provable whether that is working. You would be surprised how many optimization assumptions you make that change absolutely nothing.
We also get startup and shutdown times. Here you can see a simple cache in a low level system took startup time of our cubes scene from 9 seconds to 2 seconds.
We get a bunch of lower level information. The garbage collector in modern c# isn't a load of shit like whatever Unity uses, but this shows us how many heap allocations of each object type were made in each test, too.
You can run the benchmark by running benchmark.exe in your game folder. It's our intention that eventually all of your results will be listed on this site, which will let you track whether we've made things better or worse, or how different hardware configs change things.