A suite of performance benchmarking tools for Ruby on Rails applications to identify memory leaks and optimize speed.
Derailed Benchmarks is a Ruby gem that provides a suite of benchmarking tools specifically designed for Ruby on Rails applications. It helps developers identify performance issues such as memory leaks, slow endpoints, and inefficient object allocations by offering both static analysis of dependencies and dynamic runtime profiling. The toolset enables data-driven optimization decisions to improve application speed and resource usage.
Ruby on Rails developers and teams who need to diagnose and optimize performance in production-like environments, especially those dealing with memory bloat, slow response times, or evaluating the impact of code changes.
Developers choose Derailed Benchmarks because it offers a Rails-specific, integrated approach to performance benchmarking that goes beyond generic profiling tools. It combines ease of use with deep insights into both gem-level and application-level performance, supporting statistical validation of optimizations and compatibility with production setups.
Go faster, off the Rails - Benchmarks for your whole Rails app
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Combines static memory measurement of gems at require time with dynamic runtime profiling, as shown in the README sections on bundle:mem and perf:mem_over_time, offering a holistic view of memory usage.
Enables rigorous comparison between code commits or branches using perf:library or perf:app, with output that includes statistical significance tests and histograms to validate optimizations.
Integrates with tools like heapy to generate and analyze heap dumps for identifying retained objects, detailed in the perf:heap section, aiding in memory leak diagnosis.
Tailored for Rails with easy setup via Gemfile and tasks that automatically handle Rails environments, making it seamless for Rails developers to start benchmarking.
Requires the app to boot in production mode locally, which the README admits can be 'non-trivial' and involves configuring databases, environment variables, and potentially disabling security features.
Some commands, like perf:objects, are expensive and require careful tuning of TEST_COUNT to avoid excessive memory and time usage, as warned in the README, limiting scalability for quick runs.
Primarily designed for Rails; while Rack apps can be configured with custom tasks in perf.rake, it's more complex and less documented, reducing out-of-the-box usability for other frameworks.