Bonjour,
On m'a chargé d'analyser et optimiser les performances d'une application Symfony 3.4 non écrite par moi car elle semble assez gourmande et le serveur doit être capable de supporter une très lourde charge.
En mode dev, la page d'accueil met en moyenne 1500 ms à se charger, ce qui me paraît assez énorme car elle ne fait pas grand-chose (2 requêtes en bdd qui s'exécutent en moins de 5ms). À titre de comparaison, une autre application que j'ai écrite cette fois (en 4.2) se charge en moins de 500ms alors qu'elle fait à priori bien plus de choses (40 requêtes en bdd, nombreuses couches et boucles dans le template...). La différence majeure je pense, c'est que je n'utilise que deux bundles externes pour le multilingue alors que l'autre en utilise plus de 20.
Je trouve que le webprofiler intégré à Symfony n'est pas d'un grand secours. Je vois que le temps d'initialisation de Symfony est à 800ms (contre 55 chez moi) et sur la timeline certaines étapes (notamment le routerlistener) sont assez longues, mais ça ne me dit pas précisément pourquoi ces étapes sont plus longues.
Pour ne rien arranger, le chargement des services est fait à la old school avec un fichier services.yaml de 50km plutôt que par injection de dépendances, il serait donc compliqué de les désactiver un par un pour savoir lesquels d'entre eux sont particulièrement gourmands.
Partager