- 1. Introduction
- 2. Getting Help
- Installation
- 3. Prerequisites
- 4. Gungraun
- 5. CI
- Benchmarks
- 6. Overview
- 7. Benchmarking Best Practices
- 8. Library Benchmarks
- 8.1. Important Default Behaviour
- 8.2. Quickstart
- 8.3. Structure of a Library Benchmark
- 8.4. The Macros in More Detail
- 8.5. Setup and Teardown
- 8.6. Specify Multiple Benches at Once
- 8.7. Generic Benchmark Functions
- 8.8. Comparing Benchmark Functions
- 8.9. Configuration
- 8.9.1. Output Format/Cache Misses
- 8.9.2. Sandbox
- 8.10. Custom Entry Points
- 8.11. Multi-Threaded and Multi-Process Applications
- 8.12. More Examples, please!
- 9. Binary Benchmarks
- 9.1. Important Default Behaviour
- 9.2. Quickstart
- 9.3. Differences to Library Benchmarks
- 9.4. The Command's Stdin and Simulating Piped Input
- 9.5. Configuration
- 9.5.1. Delay the Command
- 9.5.2. Configure the Exit Code of the Command
- 9.6. Low-Level API
- 9.7. More Examples Needed?
- 10. Detecting Performance Regressions
- 11. Cachegrind
- 12. Heap Profiling with DHAT
- 13. Other Valgrind Tools
- 14. Valgrind Client Requests
- 15. Callgrind Flamegraphs
- Command-line and environment variables
- 16. Basic Usage and Exit Codes
- 17. Comparing with Baselines
- 18. Running Benchmarks in Parallel
- 19. Running Valgrind with a Custom Runner
- 20. Controlling the Output of Gungraun
- 20.1. Customize the Output Directory
- 20.2. Machine-Readable Output
- 20.3. Showing Terminal Output of Benchmarks
- 20.4. Changing the Color Output
- 20.5. Changing the Logging Output
- Migration
- 21. Migrating from Iai-Callgrind to Gungraun
- Troubleshooting
- 22. I'm Getting the Error Sentinel ... Not Found
- 23. Running cargo bench Results in an "Unrecognized Option" Error
- Comparison
- 24. Criterion
- 25. Iai