Measuring Performance
One of the more difficult aspects of systems programming is figuring out how to optimize work, and sometimes to even define what "optimize" means. Do we want more clear code, less memory consumption, lower latency responses, less variant real-time responses, better throughput etc etc. What happens when optimization goals conflict?
Anyhow, here's a list of interesting resources for measuring performance:
- Performance Engineering Requires Stable Benchmarks
- CI for performance: Reliable benchmarking in noisy environments
- Criterion.rs v0.3.4 And Iai 0.1.0
- Achieving 11M IOPS & 66 GB/s IO on a Single ThreadRipper Workstation
- Always-on Profiling for Production Systems
- flamegraph-rs
- COZ: Finding Code that Counts with Causal Profiling
The flamegraph-rs
README
has an excellent section on performance work.
Here's a list of interesting reading on performance: