Hook Performance Profiler – trouvez le module qui ralentit la boutique
Le module chronomètre chaque appel de hook, module par module, sur le trafic réel de la boutique. Le tableau de bord classe les modules, hooks, URL et contrôleurs les plus lourds, affiche la chronologie d'une page vue et liste les appels extrêmement lents.
À propos du module
Chaque module installé se greffe sur les hooks de PrestaShop et ajoute son propre temps à la génération des pages. Quand la boutique ralentit, on ne sait généralement pas quel module est responsable, et désactiver les modules un par un en production est risqué et long.
Hook Performance Profiler mesure le temps d'exécution et la hausse de mémoire de chaque hook, module par module, et les collecte sur les vraies pages vues du front-office et du back-office. Les mesures sont enregistrées en une seule requête à la fin de chaque requête HTTP, et l'échantillonnage permet de ne profiler qu'une partie du trafic. Le module utilise un seul override, la classe Hook, et ne modifie pas la couche base de données de PrestaShop.
Comment ça marche
- Installez le module. Un onglet « Profileur de performance » apparaît dans le menu.
- Réglez l'échantillonnage (par ex. 10–20 % du trafic en production), le seuil d'alerte en ms et la durée de conservation des logs.
- Après quelques heures ou jours de trafic, ouvrez le tableau de bord : le résumé est calculé immédiatement, le rapport complet se charge d'un clic.
- Consultez les classements des modules et des hooks, et en mode avancé le classement par contrôleur et l'analyse de cohortes.
- Cliquez sur « Voir » à côté d'un appel lent pour afficher le waterfall de toute la page vue. Exportez le rapport en CSV ou PDF.
Pour qui
- Les marchands dont le site a ralenti après l'installation ou la mise à jour de modules.
- Les agences et développeurs PrestaShop qui doivent désigner rapidement à un client le module et le hook en cause.
- Les boutiques avec de nombreux modules, où les désactiver un par un n'est pas envisageable.
- Les équipes qui veulent comparer les performances avant et après un déploiement.
Ce que ce module n'est pas
Il n'accélère pas la boutique à lui seul : il montre où se trouve le problème, et la correction dépend du module concerné. Il ne mesure pas le TTFB réseau du navigateur (le temps de traitement est mesuré côté PHP), ne compte pas les requêtes SQL et ne voit pas le code exécuté en dehors du mécanisme des hooks.
Ce qu’il résout
-
La boutique a ralenti sans raison apparente
Après l'installation ou la mise à jour d'un module, les pages se chargent plus lentement, mais rien n'indique le coupable.
-
Des dizaines de modules sur chaque page
Une seule page vue exécute des dizaines de hooks de modules différents. Sans mesure, impossible de savoir combien coûte chacun.
-
Désactiver les modules un par un est risqué
Procéder par essais et erreurs en production dégrade la boutique pour les clients, et une copie de développement n'a pas de vrai trafic.
-
Les outils de développement ne sont pas faits pour la production
Le mode debug et le profilage de PrestaShop ne montrent que la requête en cours et ne gardent aucun historique du trafic client.
-
Le problème n'apparaît que de temps en temps
Les appels très lents mais ponctuels passent facilement inaperçus. Sans journal d'alertes, impossible d'y revenir.
Fonctionnalités clés
-
Classement des modules les plus lourds
Temps moyen et maximal par page vue pour chaque module, avec le nombre de pages vues et d'appels. Les modules au-dessus du seuil d'alerte sont marqués LENT.
-
Classement des hooks et modules greffés
Temps des hooks, nombre total d'appels et appels moyens par page vue. En mode avancé, la liste des modules greffés sur chaque hook avec leur statut : actif, sans appel ou désactivé.
-
Classements par URL et par contrôleur
Quelles adresses et quels types de pages (fiche produit, catégorie, commandes du back-office…) sont systématiquement lents, avec la liste « ce qui s'exécute ici » pour chaque URL.
-
Waterfall d'une page vue
La chronologie de tous les appels de hooks d'une page vue : ordre, début, durée et mémoire. Hooks d'action et d'affichage distingués par couleur.
-
Alertes et recommandations
Les appels au-dessus du seuil avec l'URL de la page et un lien vers le waterfall. Des recommandations basées sur des règles signalent les modules les plus lourds, la hausse du temps de traitement et un échantillonnage trop élevé.
-
Tendance et analyse de cohortes
La tendance quotidienne du temps de traitement serveur et une grille hebdomadaire de cohortes de modules aident à trouver quelle installation ou mise à jour a ralenti la boutique.
-
Sûr en production
Un seul override (classe Hook), les erreurs du profileur n'interrompent jamais la boutique, une seule écriture en fin de requête, échantillonnage du trafic et nettoyage automatique des anciens logs.
-
Tableau de bord rapide
Le résumé est calculé immédiatement ; le rapport complet et le mode avancé se chargent à la demande. Index composites et cache des noms de modules gardent l'affichage rapide avec beaucoup de logs.
-
Export CSV et PDF, trois langues
Un rapport pour un tableur ou pour votre client. Tableau de bord, paramètres et exports disponibles en polonais, anglais et français.
Questions fréquentes
Quelles versions de PrestaShop sont prises en charge ?
PrestaShop 1.7 à 8.x, avec PHP 7.1 ou plus. Nous l'avons testé sur PrestaShop 8.0 et 8.2. Sur PrestaShop 9, essayez-le d'abord sur une copie de test.
Le module ralentit-il la boutique ?
Le surcoût est faible : la mesure se limite à deux lectures de l'heure par appel, et les données sont enregistrées en une requête à la fin de la requête HTTP. Le tableau de bord affiche le surcoût mesuré du profileur. Avec un fort trafic, réglez l'échantillonnage sur 5–20 %.
Puis-je l'utiliser sur une boutique en production ?
Oui, c'est le rôle de l'échantillonnage et du nettoyage automatique des logs. Comme pour tout module avec un override, nous recommandons de le vérifier sur une copie de test avant la première installation en production.
Et si un autre module surcharge aussi la classe Hook ?
PrestaShop signalera un conflit d'override à l'installation. C'est rare (certains modules de cache par exemple). Dans ce cas, nous vous aidons à fusionner les deux overrides dans un seul fichier.
Affiche-t-il le vrai TTFB ?
Non. Le module mesure le temps de traitement côté PHP, du début de la requête à la fin de la génération de la page. Le réseau, le DNS, le TLS et le serveur web avant PHP ne sont pas inclus.
Compte-t-il les requêtes SQL ?
Non. Compter les requêtes SQL nécessiterait de surcharger la classe base de données de PrestaShop, ce que nous avons volontairement évité par sécurité. Le module mesure le temps et la mémoire.
Combien de temps les données sont-elles conservées ?
Le nombre de jours défini dans la configuration (30 par défaut). Les logs plus anciens sont supprimés automatiquement. La désinstallation du module supprime la table de données.
Que comprend la licence ?
Un achat unique pour un domaine de production, des domaines de test illimités, et 12 mois de mises à jour et de support. Ensuite, le module continue de fonctionner, simplement sans nouvelles versions.
Compatibilité et conditions
- Compatibilité
- PS 1.7 – 8.x
- PHP
- 7.1+
- PrestaShop
- 1.7 – 8.x
- PHP
- 7.1+
- Override
- 1 (classe Hook)
- Langues
- PL, EN, FR
- Export
- CSV, PDF
- Support
- 12 mois
- Type de licence
- Achat unique, 1 domaine, 12 mois de mises à jour
- Pour qui
- Boutiques PrestaShop 1.7–8.x, agences, développeurs
Journal des versions
2.2.0
- Traduction complète en anglais et en français du tableau de bord, des paramètres et des exports CSV/PDF.
- Nom de l'onglet du menu dans la langue de l'employé (migration pour les installations existantes).
- Export CSV avec les caractères accentués au lieu de la translittération.
- Nouveau logo du module.