Automated Performance Recommendations

By Christophe Dujarric, on Mar 02, 2016

Blackfire is a performance testing tool. It enables you write tests while you develop new features, and be warned whenever there’s a regression. Just like for unit tests, or integration tests.

Whenever you have a regression, the profile view and its callgraph make it intuitive to find the root cause of the performance bottleneck.

Well, we just made that easier!

If you read the 24 days of Blackfire through, you now know that you should forget about time when in your tests. Time is just a first indication that something is going wrong. But as it is not a stable metric, you should write tests on metrics that will give you exactly the same value, every time you profile the same request. For instance you could count the number of SQL queries. Or the number of call to a specific function in your own business logic.

Still hesitating on where to start? That’s exactly what the recommendations are here for!

For any profile that you request, Blackfire is able to feedback some recommendations on what you should do at first, in order to improve the performance of your app. It’s like our own tests, based on our own best practices, that we made available for you. And we warn you about it only when it fails.

Check out this new tab in your profile view, in between the Functions list and the Assertions! (Premium or Enterprise Edition required, try the Premium Edition for free!)

recommandations

Going further, our recommendations are also based on some essential context elements: are you profiling on a development server, or a production server? Configuring this information in your Blackfire environment will help you get more relevant recommendations.

We’ll be adding more recommendations regularly, so you can always check back and challenge a request if you think there’s room for improvement. Also, we’d be happy to get your feedback on those recommendations, and even your input on best practices in each Framework. Are you working on Magento? Drupal? eZ Publish? Laravel? Symfony? Tell us what you’d like to see!

Happy performance testing!

Christophe Dujarric

Christophe is the Product guy at Blackfire/SensioLabs. He has been working in several start-up companies, helping them to make and sell products out of technologies. He’s involved in every step of the product’s lifecycle, from strategy to design and sales, and loves to coach on product management methods.