Welcome to Blackfire, your Performance Management Solution. Blackfire can be used at any step of your application's lifecycle: during development, test, staging and production, to profile, test, debug and optimize its performance.
Beyond legacy profiling tools, and more proactively than by using APMs, Blackfire will help you set and reach performance expectations for your application through assertions. From the first line of code in your app, just like you write unit tests or integration tests, you will be able to write performance tests and run test scenarios.
Better than that, you will be able to automate testing with the help of integrations with your current development tools, periodically test scenarios, integrate with other tool automatically the test scenarios, and receive notifications when build reports are available.
To learn more about performance management, check out the 24 days of Blackfire, by Fabien Potencier.
Blackfire's core technology relies on profiling techniques. While your code is being executed, Blackfire gathers consumption metrics. Then, it renders the profiling data as a call-graph, showing the execution path and caller/callee relation between your code's function calls. You can get the detailed resources consumption in terms of Wall-time, I/O time, CPU time, Memory, Network, HTTP calls and SQL requests.
To better understand how to read a call-graph in Blackfire, check our doc on analyzing profiles.
Blackfire profiles are generated only for requests triggered by a Blackfire user, or by Blackfire when profiling is automated. That is made possible thanks to our runtime instrumentation. As no other requests will be instrumented, Blackfire will add no overhead for your end users, which makes it safe to use in production. Another benefit of the on-the-fly runtime instrumentation is that you do not need to modify your code to get profiling data. Which makes it much more scalable when releasing to production.
To better understand how Blackfire works, check our doc on the Blackfire stack.
Before starting to use Blackfire, you need to install the stack on your infrastructure or just on your personal computer.
Blackfire also provides integrations with many third-party services and libraries.