Performance v2.3.0

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.

Formulaire de contact

Module concerné : Hook Performance Profiler – trouvez le module qui ralentit la boutique