illustration

Utiliser blackfire.io pour analyser vos problèmes de performance sur Symfony 3

Utiliser blackfire.io pour analyser vos problèmes de performance sur Symfony 3. Cet outil, développé par SensioLabs, le créateur de Symfony, vous permet de déterminer les faiblesses de votre application en terme de temps de réponse.

Avez-vous déjà entendu parler de blackfire.io ? C'est un outil développé par SensioLabs, et disponible en SaaS. Il est censé vous aider à bien gérer la performance de vos applications. Dans son mode gratuit, blackfire.io met à votre disposition quelques fonctionnalités que nous allons découvrir ensemble. C'est parti !

Installer blackfire.io

Pour commencer, vous devez l'installer sur votre serveur. Le manuel d'installatin est précis et bien documenté pour chaque environnement. Pour ma part, j'ai suivi les instructions concernant "Debian".
Quand vous commencez l'installation, ils vous disent que cela devrait prendre moins de 5 minutes... Et c'est vrai ! ;)
Comme le suggère BlackFire.io, vous pouvez installer un plugin Google Chrome afin de faciliter le monitoring de vos applications. Lorsque vous cliquez sur le bouton "Profile", le système va utiliser les clés pour effectuer le monitoring de notre application. Mon application en test utilise le système de cache de Symfony, j'obtiens donc de bons temps de réponse : 2ms. Quand je clique sur "View Call Graph", je vois les fichiers et fonctions appelés depuis le système de cache. J'ai peu d'appels. Le reverse proxy de Symfony est efficace. Ce qui m'interresse c'est de connaitre les appels effectués en dehors du système de cache. Pour ce faire, il suffit juste de commenter une ligne dans web/app.php.

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

Je rafraichis ma page, et je clique à nouveau sur "Profile". Le resultat n'est pas le même : 67ms. Le système de cache de Symfony est puissant ! Voyons maintenant le graphique des appels générés. Nous constatons que nous avons beaucoup plus d'appels : controllers, templates, repositories... Et nous pouvons voir le temps consommé par chaque méthode. Si votre application est lente, vous pouvez rapidement identifier la cause et solutionner le problème.

Et que dire de la version payante de BlackFire ?

Dans sa solution gratuite, Blackfire.io vous permet juste d'avoir le graphique des appels et les temps de réponse associés. C'est très utile, mais si vous avez le budget, vous pouvez acheter des meilleurs outils chez Blackfire.io. Ils peuvent vous proposer un monitoring plus poussé ( CPU, Memory ), évaluer le coût de vos requêtes SQL, et vous donner des recommandations pour améliorer votre application. 
Cet outil peut aider votre équipe de votre développeur à créer un code plus performant.

Que pensez-vous de blackfire.io ? Dites-le nous dans les commentaires ;)