Jérôme Vieilledent

Profiling Symfony & PHP apps with Blackfire

A single page took 400ms to load. Watch how methodical profiling identified the root cause and brought the final load time down to just 50ms.

Profiling Symfony & PHP apps with Blackfire
#1about 5 minutes

Why application performance is critical for business

Slow page loads directly impact revenue and conversion rates, making performance a critical business concern that should be addressed early in development.

#2about 5 minutes

How Blackfire profiles applications on-demand

Blackfire's on-demand profiler has minimal overhead in production because it only activates for authorized requests, unlike other tools like Xdebug.

#3about 6 minutes

Differentiating between monitoring and profiling

Monitoring and tracing identify when and where performance issues occur, while profiling provides deep insights into function calls to understand why they happen.

#4about 7 minutes

Profiling a Symfony app with the browser extension

The first step in debugging is running a profile using the browser extension and analyzing the timeline view to find slow code paths.

#5about 17 minutes

Analyzing the call graph to find bottlenecks

The call graph visualizes function interactions, using inclusive and exclusive time to highlight the critical path and pinpoint performance bottlenecks.

#6about 6 minutes

Fixing an N+1 query problem in Doctrine

An inefficient method that loaded all comments into memory was replaced with a repository method that performs a direct SQL COUNT query.

#7about 7 minutes

Comparing profiles to validate performance fixes

Use the profile comparison feature to get objective data on the impact of code changes across dimensions like wall time, CPU, and memory.

#8about 14 minutes

Using recommendations to optimize PHP and Symfony

Blackfire's built-in recommendations help identify and fix common configuration issues related to PHP, OPcache, Composer autoloading, and framework settings.

#9about 12 minutes

Implementing caching to reduce database queries

Adding a cache layer for frequently calculated data significantly reduces the number of SQL queries and improves response time.

#10about 16 minutes

Automating performance testing with scenarios

Define performance tests and user scenarios in a .blackfire.yaml file to automate checks in CI/CD pipelines and prevent regressions.

#11about 7 minutes

An overview of Blackfire's monitoring features

Monitoring provides a high-level view of application health, tracks key transactions, and can automatically trigger detailed profiles when issues are detected.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.