XHGui

XHGui est un outil d’analyse et de visualisation des profils de performance PHP, conçu pour aider les développeurs à identifier les goulots d’étranglement, les fonctions lentes et les inefficacités dans le code d’une application web.

Il s’appuie sur Tideways (ou anciennement XHProf) comme collecteur de données, et fournit une interface web intuitive pour explorer les traces d’exécution (traces ou profiles) en contexte réel (production ou staging).

Fonctionnement global

  1. Instrumentation :
    Une extension PHP (comme Tideways) trace chaque requête HTTP :
    • Temps CPU
    • Temps mural (wall time)
    • Consommation mémoire
    • Appels de fonctions (inclusifs/exclusifs)
    • Requêtes SQL, appels externes, etc.
  2. Stockage :
    Les données sont envoyées vers une base (souvent MongoDB ou SQLite via des adaptateurs modernes).
  3. Visualisation :
    XHGui expose une interface web permettant de :
    • Lister les requêtes les plus lentes
    • Comparer des profils
    • Explorer l’arbre d’appels (call graph)
    • Filtrer par URL, contrôleur, utilisateur, etc.

Cas d’usage typiques

  • Optimiser un site WordPress lent en identifiant les plugins ou requêtes coûteuses.
  • Auditer les performances après une migration (ex. : passage à PHP 8.2).
  • Valider l’impact d’un refactoring (ex. : remplacement d’un plugin par un bloc natif).
  • Former des apprenants à la notion de performance applicative dans un cadre DMA ou DevOps.

Contrairement à Blackfire (solution SaaS/propriétaire), XHGui est open source, auto-hébergeable, et idéal pour des environnements sensibles (ex. : intranet, documentation sensible).

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.