Each year as SymfonyLive London draws to a close, we ask for feedback from all attendees to help us improve the conference as much as possible. The workshop day, which takes place the day before the main conference and has 3 parallel workshops on offer, is consistently cited as one of the most valuable and rewarding elements of the conference.
This year, we’ve stepped the workshop schedule up a notch - three workshops and five expert coaches - designed to equip attendees with practical experience and knowledge to advance their Symfony2 skills.
We sat down with Tugdual Saunier, product developer at Blackfire, to find out what attendees can expect from his workshop on profiling Symfony applications.
Can you give us a little insight into your background?
I started PHP a while ago - back in 2000 if I remember correctly. It's actually thanks to PHP that I decided to study programming and make it my job. A few years later, as a professional, I started to learn symfony (yes, version one), and a couple of years after that I joined SensioLabs at head office. Over the years I’ve worn many cloaks: I have been a developer, a coach, a lead developer and a trainer. I then moved to product development two years ago and I am now a devops for Blackfire.
Can you tell us more about your specific experience with profiling?
A couple of years ago, with Fabien Potencier, we were trying to optimise Symfony and Twig - at least exploring some options. And we got so frustrated by how hard it was to evaluate performance impact of some changes in code that we decided to explore the options available to improve the situation.
Why should a developer invest their time and skills in profiling?
Speed matters. Application performance is key to success as a slow app means less user engagement and possibly less revenue. But a fast app also means fewer servers so less money needs to be spent on hosting - and it’s also much greener.
Another aspect of profiling is understanding how your app behaves. Sometimes - often, actually - you discover things you didn't suspect before. For example, profiling can also be a way to discover how your application actually behaves in production, even if it’s not its primary purpose. We have several stories where our users, by profiling their app, discovered what was really happening under the hood.
What level is your workshop aimed at? (Beginner, intermediate, advanced?)
Intermediate skills of PHP are required to understand how PHP works. No profiling skills are required. Attendees will need a recent PHP stack installed on their laptops as well.
What tools will you be using in the workshop?
We will use XHProf and XDebug to give examples of what existed on the market until we created Blackfire. Then we’ll be using Blackfire (the most recent version). Attendees will learn what performance means and how to detect where their app is spending most of its time.
How can/should attendees prepare for the course? Is there anything they can read before attending?
Theory is part of the workshop, so no reading is necessary. However, we will use a demo Symfony application and some tools. So in order to be prepared for the course, it would be better if attendees arrived meeting the requirements to run a regular Symfony application. Having XHProf, Xdebug and Blackfire installed would also be ideal. (As an alternative, for those who wish, I will provide Docker images). This will save us time and allow us to deep-dive into profiling on the use cases attendees can bring to the workshop to discuss in detail.
What kind of exercises will there be?
We will profile an app attendees won’t be familiar with. In the first round, I will show them how the tools work. Then they will have to spot the issues themselves and propose improvements. As coding is not the main purpose of the workshop, attendees won't have to code the fixes by themselves.
What is the one thing you hope attendees walk away with from your workshop?
I hope attendees will walk away from the workshop confident that profiling is as easy as it is important, and an understanding that it should be done every day.
Tugdual will be leading one of three exclusive workshops at SymfonyLive London at the QEII Conference center in Westminster. For the full line-up of workshops on profiling, Domain-Driven Design and Behaviour Driven Development for legacy projects, visit the SymfonyLive website.