I keep running into this solution to a particular problem, but when I go to search on how to do it, I find that not only are there seemingly no solutions out there in search-results-land, there doesn't seem to be anyone else even asking about it. This then leads me to suspect, that I'm going about it in completely the wrong mindset, and I'd appreciate anyone helping me see how everyone else is solving this problem.
The issue is this: Let's say I have some function - call it BeefyFunc() - that is heavily relied upon and executed many times per second in my high-traffic, high-availability critical application. And let's say that BeefyFunc() is very complex in the sense that it calls many other functions which call other functions, etc, and these called functions are spread out all over the code base, and maintained by a broad and distributed development team (or even just one forgetful, overworked developer). If BeefyFunc() currently executes at 80 ns/op on my development machine, I want to make sure that no one makes some change to an underlying function which causes BeefyFunc to balloon up to 800 ns/op. And more to the point, if that ballooning does happen, I want someone to be notified, not to have to rely on a QA person's ability to notice a problem while scanning the benchmark reports. I want that problem to be highlighted in the same way a test failure would be. So it seems like the logical solution would be to create a test that runs a benchmark and makes sure the benchmark results are within some acceptable range. I realize that benchmarks are going to differ from machine to machine, or based on CPU load, etc. But it seems like it would still be useful in a CI/CD situation or on my personal dev machine, where the machine hardware is stable and known and the CPU load can be reasonably predicted, that at least a sufficiently wide range for benchmarks could be reasonably enforced and tested for. Am I being stupid? Or is this a solved problem and it's just my google-fu that's failing me? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/7adf598e-03a8-456a-a52f-824a8d1832e3n%40googlegroups.com.