Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

SymfonyCasts

Blackfire.io: Revealing Performance Secrets with Profiling

via SymfonyCasts

Overview

We're developers... so of course we like fast stuff! But performance is more than a nice-to-have, it has a serious impact on how happy your customers are and (gasp) on sales! How sure are you that your app is as fast as it could be? Are there hidden (and maybe easy-to-fix) performance bottlenecks? And if there are... how can we find them? Ah, welcome to the science-art of profiling!

In this tutorial, we'll talk about our go-to profiling tool: Blackfire.io and how to leverage it to find any type of performance blocker. By mastering some skills, we'll find and eliminate real performance problems:

  • Blackfire setup, what it all means & profiling
  • Understanding the call graph: wall time vs IO time vs CPU time
  • Callers vs callees & optimizing calls
  • Deep profiled details: OPcache memory, RealPath cache, etc
  • Exclusive versus Inclusive call time
  • Profiling AJAX requests... and "all requests"
  • Profiling a command-line script
  • Investigating SQL query problems & network calls
  • Blackfire Environments & automated builds
  • Custom performance scenarios
  • Writing performance assertions
  • Automated performance checks
  • The Blackfire Player
  • The Blackfire SDK: generate custom profiles from your code
  • Using Blackfire in PHPUnit for performance assertions

Ready to find those hidden performance bugs and make your app fly? Let's do this!

Syllabus

  • Performance, Profilers and APMs
  • Blackfire Install: Agent, Probe, Chrome Extension
  • Installing the Agent, Probe & Chrome Extension
  • Wall Time, Exclusive Time & Other Wonders
  • Finding Issues via the Call Graph
  • Comparisons: Validate Performance Changes, Find Side Effects
  • Recommendations
  • Property Caching
  • Using a Caching Layer & Proving its Worth
  • The N+1 Problem & EXTRA_LAZY
  • Fixing N+1 With a Join?
  • Profile All Requests (Including Ajax)
  • The Blackfire CLI Tool for AJAX Requests
  • Profiling Command Line scripts
  • Timeline: Go Behind-the-Scenes with your Code
  • Timeline: Finding a Hidden Surprise
  • Spotting Heavy Object Instantiation
  • Service Subscribers
  • Manually Profile (Instrument) Part of your Code
  • SDK: Automatically Create a Profile
  • Creating an Automatic Probe Early in your Code
  • Performance Tests
  • All about Metrics
  • Assertions / Profile "Tests"
  • Blackfire Player
  • Expectations/Tests with Blackfire Player
  • Deploying to SymfonyCloud
  • Database Tricks on SymfonyCloud
  • Blackfire Environments
  • Production Profile: Cache Stats & More Recommendations
  • Automatic Performance Checks: Builds
  • Builds with Custom Scenarios
  • Per-Page Time Metrics & Custom Metrics
  • Testing a Build Compared to the Last Build
  • Staging Servers on SymfonyCloud
  • Staging Environment Builds
  • Blackfire Environment Variables

Taught by

Ryan Weaver

Reviews

Start your review of Blackfire.io: Revealing Performance Secrets with Profiling

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.