Revealing Performance Secrets with Profiling

By Christophe Dujarric, on Mar 03, 2020


SymfonyCasts is “Simply the Best PHP & Symfony Tutorials” as they mention on their website. It’s indeed an amazing way for anyone to learn PHP and Symfony.

Lessons are split in short chapters. Each chapter is a step by step video tutorial, which guides you as a student through exercises so that you can reproduce what the teachers do. And while you can listen to them, a full transcript of the speech is available below the video. Even better: clicking on a specific bit of text will lead you to the exact moment in the video.

Learning how to Profile, Test, Fix, Repeat

Where most lessons require a paid subscription, Blackfire is thrilled to sponsor the Profiling course, which is available fully for free!

Let Ryan Weaver lead you through the basics of PHP code profiling on-demand, onto more advanced usages, such as writing performance tests and automating profiling.

Start learning now!

Table of Contents

01. Performance, Profilers and APMs 5:35

02. Blackfire Install: Agent, Probe, Chrome Extension 3:14

03. Installing the Agent, Probe & Chrome Extension 6:26

04. Wall Time, Exclusive Time & Other Wonders 7:47

05. Finding Issues via the Call Graph 6:50

06. Comparisons: Validate Performance Changes, Find Side Effects 3:56

07. Recommendations 6:25

08. Property Caching 8:17

09. Using a Caching Layer & Proving its Worth 4:24

10. The N+1 Problem & EXTRA_LAZY 5:59

11. Fixing N+1 With a Join? 4:38

12. Profile All Requests (Including Ajax) 6:03

13. The Blackfire CLI Tool for AJAX Requests 4:46

14. Profiling Command Line scripts 6:33

15. Timeline: Go Behind-the-Scenes with your Code 7:15

16. Timeline: Finding a Hidden Surprise 4:38

17. Spotting Heavy Object Instantiation 6:06

18. Service Subscribers 6:22

19. Manually Profile (Instrument) Part of your Code 9:04

20. SDK: Automatically Create a Profile 4:43

21. Creating an Automatic Probe Early in your Code 7:57

22. Performance Tests 6:45

23. All about Metrics 9:27

24. Assertions / Profile “Tests” 4:07

25. Blackfire Player 4:47

26. Expectations/Tests with Blackfire Player 6:10

27. Deploying to SymfonyCloud 5:01

28. Database Tricks on SymfonyCloud 8:00

29. Blackfire Environments 7:17

30. Production Profile: Cache Stats & More Recommendations 4:18

31. Automatic Performance Checks: Builds 7:15 

32. Builds with Custom Scenarios 5:32

33. Per-Page Time Metrics & Custom Metrics 4:29

34. Testing a Build Compared to the Last Build 7:46

35. Staging Servers on SymfonyCloud 4:46

36. Staging Environment Builds 7:56

37. Blackfire Environment Variables 4:15

Christophe Dujarric

Christophe is the Chief Product Officer at Blackfire. He's an engineer, but probably one of the least "tech" people in the company. He's wearing many hats, from product management to marketing and sales. He loves the beauty of simple solutions that solve actual problems.