Manual:Profiling/fr

Le profilage (profiling) suit l'exécution du code pendant l'action sur une page et fournit le pourcentage relatif du temps d'exécution dans chaque fonction spécifique. Le profilage est une tâche avancée pour les développeurs et les administrateurs système pour tracer les sources de ralentissement dans MediaWiki à optimiser.



Profilage PHP
Vous pouvez utiliser Tideways ou XDebug. Ces extensions PHP fournissent les possibilités de trace et de profilage.

Tideways dispose aussi d'une interface utilisateur propriétaire pour visualiser les résultats, mais elle ne vous est pas nécessaire.

Installez le paquetage  sous Debian / Ubuntu, ou Homebrew sous macOS.

Pour XDebug, voir la documentation du profiling XDebug. Pour les scripts en mode ligne de commande, vous pouvez utiliser. Webgrind peut ensuite être utilisé pour afficher les résultats du profile.



Profilage personnalisé MediaWiki
En MediaWiki 1.25 le profilage a été complètement réécrit et beaucoup de paramètres qui avant étaient relatifs au profilage, ont été supprimés en faveur de leur consolidation comme paramètres de $wgProfiler. Notamment, la sortie a été séparée des types de classes. Pour la documentation concernant le profilage avant la version 1.25, voir une ancienne version de cette page.

Exemple de configuration :

Chacun de ces paramètres (et plus) est décrit en détails :


 * class
 * 'ProfilerXhprof'. ProfilerXhprof est nouveau en MediaWiki 1.25 et fournit un profileur de type Xhprof qui capture des données de profilage pour toutes les fonctions et les sous-unités fonctionnelles. Les anciennes valeurs telles que ProfilerStandard, ProfilerUDP, ProfilerDB, etc ne fonctionnent pas. Même si vous utilisez Tideways, spécifiez encore la classe ProfilerXhprof.


 * output
 * Une ou plusieurs valeurs parmi 'ProfilerOutputText', 'ProfilerOutputDump', 'ProfilerOutputStats' .  génère l'information soit sous forme de commentaires HTML ou après l'habillage.   est un format d'envoi pour un démon udpprofile.   vide les données de profilage pour être utilisées avec l'interface graphique utilisateur xhprof (rôle xhprofgui dans les paramètres Vagrant).


 * outputDir
 * Ne s'applique qu'au format 'ProfilerOutputDump'. Nécessaire pour spécifier où les fichiers de vidage seront enregistrés.


 * visible
 * Ne s'applique qu'au format 'ProfilerOutputText'. Indique si le texte est affiché après l'habillage ou dans un commentaire HTML.

Résolution des problèmes
Si vous obtenez l' « Erreur fatale : Exception non récupérée : ni xhprof ni tideways ne sont installés » alors voici ce que vous devez faire :

Si vous obtenez encore une erreur, allez sur https://tideways.com/profiler/xhprof-for-php7

Sortie
La sortie texte ressemble à :

La première colonne est le pourcentage du temps; la seconde représente le temps passé (en ms); la troisième est le coût; et la quatrième est le nom de la méthode.

