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.
Saby Company

Saby Company
Delebio, Italy

Remote
Intermediate
Node.js

Featured Partners

Related Articles

View all articles
JC
Jordan Cutler
Top 7 Software Development Workflow Tips I Wish I Knew Earlier
Your time matters.1 hour of efficiency gain per day saves you 1 month per year.I’ll prove it to you:1 hour per day x 5 days per week x 52 weeks = 260 hours saved per year260 hours / 8 hours per day = 32.5 work days per year.That’s 1 month you could b...
Top 7 Software Development Workflow Tips I Wish I Knew Earlier
CH
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take part
Starting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
WeAreDevelopers LIVE days are changing - get ready to take part

From learning to earning

Jobs that call for the skills explored in this talk.