Prestashop 1.5 et le Profilling

En naviguant à gauche et à droite… je suis tombé sur un article où l’on faisait mention d’une option de « profiling » pour Prestashop 1.5… mais qu’est-ce que c’est ? Et à quoi ça peut bien servir ? On va voir ça ensemble !



Le Profiquoi ?

Le profiling c’est une option qu’il est possible d’activer dans le fichier /config/defines.inc.php, il suffit de mettre à « TRUE » le « _PS_DEBUG_PROFILING_ » que vous pouvez voir ci-dessous. A quoi ça sert ? Et bien ça affiche toutes les requêtes et temps de chargement + le poids de chaque zones à charger.


Y’a quoi d’intéressant à en tirer ?
Une fois l’option activée on va constater qu’un tableau complet des informations va s’afficher en dessous du footer du site. On va déjà par exemple prendre la première partie  où l’on peut déjà constater qu’on a accès à la liste des différents « Hooks » par exemple on a le displayHeader… qui correspond à l’entête du shop qui prend quasiment à lui seul 1 seconde de traitement… Ou encore par exemple on constate que displayLeftColum… donc la colonne de gauche charge pour 1.39 Mb d’informations… elle est plus lourde que la colonne de droite et ça se confirme à l’affichage, car il y a plus de blocs et de contenu à gauche dans mon site de démo.


Toujours dans le tableau ci-dessus, on voit aussi par exemple le nombre de requêtes ici 139 (c’est déjà pas mal hein..)  et aussi la taille du cache, ça permet de donner une idée de la répartition du volume au niveau des traitements.

Et puis plus bas, on voit toutes les requêtes exécutées avec aussi la provenance de l’appel de la requête… je trouve que c’est assez bien pensé cette option de profiling.


Quel intérêt pour moi ?
Ce qui est intéressant là dedans c’est surtout quand on a une boutique qui commence vraiment à se trainer… qu’on essaie d’optimiser et qui est pourtant toujours lente. Grâce à cette option de debug on peut déjà localiser la zone qui est perturbée par le ralentissement… Dans le cas présent ce n’est pas un bon exemple, mais on devrait optimiser « displayHeader » car c’est celui qui est le plus à la traîne dans les processus (mais on pourrait imaginer qu’il serait genre 10x plus lent et que du coup la boutique mette un temps fou à se charger).

Et comment on optimise alors ?
Magiiiiie ! Et non, il faudra procéder pas à pas par isolement pour localiser « quel traitement » ralenti le processus… Dans la plupart des cas vous pouvez avoir un module qui vient se greffer dans cette zone et qui serait par exemple mal optimisé… La méthode la plus simple consiste à aller dans le back-office (sous Modules -> Positions) et de retirer 1 à 1 chaque module présent et de tester l’affichage avec le debug pour voir si tout à coup la suppression de l’un d’entre eux, redonne les performances d’origines à la boutique.


Bilan
Bon franchement j’utilise pas vraiment souvent cette option, car le plus souvent je fais du débugage assez basique… avec l’option _PS_MODE_DEV_ qu’on peut aussi activer dans le fichier vu préalablement. Par contre, je pense que pour une boutique qui a des « lenteurs » importantes, cet outil peut apporter des éléments de réponses… Bien sûr solutionner un problème de lenteur est toujours assez compliqué, car les facteurs peuvent-être multiples, mais au moins avec cette méthode c’est une piste de plus à explorer !

6 commentaires sur “Prestashop 1.5 et le Profilling”

  1. Je t’aime!!! 😀

    Je passe des heures à essayer de comprendre pourquoi mon site est lent après passage sur la 1.5.6.2. Une perte de temps monumentale avec infomaniak qui ne voyait rien d’anormal! Un vrai pétage de plombs! Tout d’un coup une idée me viens de chercher sur ton blog si par hasard tu n’aurai pas eu un cas similaire. En tapant « lenteur » et je tombe sur ton post! en 1min30 exactement j ai pu résoudre le problème! Car avant d’afficher le détail il m’a indiqué qu’il y avait des problèmes d’écriture sur certains modules et sur des css de mon thème… Changement d’attribut -> rechargement de la page et là MIRACLE!!!! La page ne met plus 11 secondes à charger mais moins d’une seconde!!!

    10000000000 FOIS MERCI!!!! 🙂 Je peux aller dormir heureux!^^

    1. Héhé…

      Bonne nouvelle si ce billet a pu te rendre service…

      Parfois un bloc d’un module peut faire traîner toute le système Prestashop et véritablement handicaper la navigation + chute importante du trafic et bien sûr augmentation du taux de rebond.

      Le problème en écriture est parfois traître car le système essaie de modifier les fichiers en permanence mais n’y arrive pas… du coup parfois Prestashop fonctionne avec l’option « cache activé », mais sans que le cache puisse se mettre en place.

      Bonne suite ! 😉

    1. Bonjour,

      Il faudrait faire un test avec le thème original & avec le cache désactivé pour voir si les informations s’affichent.

      Merci pour votre visite !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *