What is Blackfire?

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 Blackfire's book, by Fabien Potencier.

How Does it Work?

Blackfire's core technology relies on profiling techniques. While your code is being executed, Blackfire gathers resource consumption data. Then, it renders the profiling data as two different views:

  • A call-graph that shows 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.
  • A timeline that shows individual function calls on a timeline for a better understanding of the call stack. It allows you to inspect all parent calls that led to any specific call.


To better understand how to read profiles in Blackfire, check our docs on analyzing call graphs and analyzing timelines.

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.

What's Next?

Before starting to use Blackfire, you need to install the stack on your infrastructure or just on your personal computer.

Then, learn more about how to profile HTTP request (Web Pages, Web Services, API calls) and how to profile CLI commands.

If you've never used a profiler before, learn more about how to analyze call graphs, how to read a timeline, and how to interpret time.

Blackfire is not just a profiler and it can be used to write tests and scenarios.

Blackfire also provides integrations with many third-party services and libraries.