Continuous Performance Profiling
with Blackfire
Dmytro Olaresko
dolaresko@adyax.com
Oleksandr Senenko
asenenko@adyax.com
Profile All the Things
The art of performance analysis
#DrupalCampKyiv
#SymfonyLive
@nicolasgrekas
Reduce Costs
#SymfonyLive
@nicolasgrekas
Increase
User
Engagement
#SymfonyLive
@nicolasgrekas
Time
#SymfonyLive
@nicolasgrekas
I/O
#S
y
mf
o
nyL
ive
@
n
ico
lasg
rekas
Memory
Profile All the Things
The art of performance behavior analysis
#DrupalCampKyiv
Well, is that magic?
Let’s see how it works
#DrupalCampKyiv
General Workflow
#DrupalCampKyiv
Add data intelligence
Metrics, recos, assertions
#DrupalCampKyiv
#Symfony_Live
@nicolasgrekas
#Symfony_Live
@nicolasgrekas
#Symfony_Live
@nicolasgrekas
#Symfony_Live
@nicolasgrekas
#Symfony_Live
@nicolasgrekas
Pro-Tip: this will un-aggregate
nodes per different values of the
first argument in your callgraphs
Let’s automate now
Continuous performance profiling
#DrupalCampKyiv
#Symfony_Live
@nicolasgrekas
ve
@nicolasgrekas
ProfilingSlowQueries
#DrupalCampKyiv
A Highly Hackable Profiler
•Prod ready
•SaaS* or On Premise
•Programmable
•That makes you better at coding!
* « hack » plan is free and has all xhprof-like features
#DrupalCampKyiv
Installation and configuration
• The Agent, and the Client work on Linux, MacOS X, FreeBSD and Windows
• The Probe works on Linux, MacOS X, FreeBSD with PHP 5.3 to 7.3. On
Windows , the Probe works with PHP 5.4 to 7.3
• The Companion is currently available for Google Chrome and Firefox
• The Website works on all browsers but Internet Explorer))
#DrupalCampKyiv
Requirements:
https://blackfire.io/docs/up-and-running/installation
Demonstration based on examples
• Profiling HTTP Requests
• Writing Tests
• Writing Scenarios
#DrupalCampKyiv
#DrupalCampKyiv
Pro-Tip: Copy as cURL
#DrupalCampKyiv
#Symfony_Live
@nicolasgrekas
#Symfony_Live
@nicolasgrekas
#DrupalCampKyiv
#Symfony_Live
@nicolasgrekas
Running Scenarios On-Demand
#DrupalCampKyiv
Blackfire SDK
• Profiling Microservices
• Profiling Postman Requests
#DrupalCampKyiv
https://blackfire.io/docs/cookbooks/profiling-postman
https://blackfire.io/docs/cookbooks/profiling-microservices
Practices
#DrupalCampKyiv
git clone
https://code.adyax.com/asenenko/blackfire-workshop.git
composer install
docker-compose up -d
http://blackfire-workshop.localhost:8000
User admin / admin
Happy Profiling!
#DrupalCampKyiv
Dmytro Olaresko
dolaresko@adyax.com
Oleksandr Senenko
asenenko@adyax.com

Blackfire Workshop