A suite of continuous benchmarking tools that detects and prevents performance regressions before they hit production.
Bencher is a suite of continuous benchmarking tools that helps developers detect and prevent performance regressions before they reach production. It wraps existing benchmark harnesses, tracks results over time, and integrates with CI/CD pipelines to catch performance issues early. The platform supports a wide range of programming languages and benchmarking frameworks.
Software developers and DevOps engineers who need to monitor performance metrics in CI/CD pipelines, especially those working on performance-sensitive applications across multiple languages.
Bencher offers a unified, language-agnostic platform for continuous benchmarking that integrates seamlessly with existing tools and CI/CD workflows. Its ability to detect regressions before production and provide historical tracking sets it apart from ad-hoc benchmarking solutions.
🐰 Bencher - Continuous Benchmarking
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports a wide range of languages and benchmarking tools including Rust's Criterion, Python's pytest-benchmark, and C#'s BenchmarkDotNet, as detailed in the extensive adapter list.
Offers ready-to-use GitHub Actions and GitLab CI/CD integrations with features like error-on-alert and PR comments, exemplified in the provided YAML configurations and flags.
Provides a web console to monitor, query, and graph benchmark results over time based on branches, testbeds, and measures, enabling trend analysis as shown in the showcase examples.
Wraps existing benchmark harnesses via the CLI without requiring changes to your current setup, as emphasized in the 'Run' section and adapter documentation.
Self-hosting involves deploying both an API server and a web UI, with documentation warning about version management and potential breaking changes compared to the cloud version.
Relies on a predefined set of benchmark adapters; custom or unsupported tools may require additional integration effort or fallback to the JSON format, limiting flexibility.
Setting up thresholds, alerts, and analytics for regression detection requires careful configuration, which can be time-consuming for complex projects, as noted in the thresholds explanation.