Maison  >  Article  >  développement back-end  >  Tutoriel de code graphique sur l'installation et l'utilisation de l'outil d'analyse des performances xhprof sous php7

Tutoriel de code graphique sur l'installation et l'utilisation de l'outil d'analyse des performances xhprof sous php7

黄舟
黄舟original
2017-08-10 11:15:573007parcourir


Installez xhprof

cd xhprof/extension/
phpize
./configure 
makemake install

puis ajoutez

extension=xhprof.so

à /etc/php.ini selon la situation et exécutez

php -m | grep xhprof

Vous pouvez voir le résultat, indiquant que l'extension php est installée avec succès, puis redémarrer Apache ou php-fpm

Exécuter

Vous pouvez directement exécuter le fichier dans le répertoire d'exemple dans le fichier cloné depuis github Exemple

Le résultat est le suivant

Array
(    [main()] => Array        (            [ct] => 1            [wt] => 9        ))
---------------Assuming you have set up the http based UI for 
XHProf at some address, you can view run at 
http://<xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo
---------------

Copiez ensuite le ?run=592567308784c&source=xhprof_foo

après index.php et visitez

xhprof_html/index.php?run=592567308784c&source=xhprof_foo

pour voir le résultat

Tutoriel de code graphique sur linstallation et lutilisation de loutil danalyse des performances xhprof sous php7

Cliquez sur le graphique d'appel complet au milieu pour voir l'image de l'analyse des performances

Erreur reporting

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
//解决方案yum install graphviz

Adaptez-vous en conséquence

Par exemple, si vous souhaitez tester votre propre projet, comme l'analyse des performances d'un framework.

Copiez les deux fichiers

xhprof_lib.php et xhprof_runs.php sous xhprof_lib/utils/ dans le même répertoire que le fichier d'entrée, puis ajoutez

// start profiling
xhprof_enable();
au début de le fichier d'entrée

Ajoutez

// stop profiler
$xhprof_data = xhprof_disable();

// display raw xhprof data for the profiler run
print_r($xhprof_data);


include_once "xhprof_lib.php";
include_once "xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
     "Assuming you have set up the http based UI for \n".
     "XHProf at some address, you can view run at \n".
     "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".
     "---------------\n";

à la fin pour obtenir l'URL indiquée ci-dessus, puis visitez à nouveau

http://***/xhprof_html/index.php?run=*****&source=xhprof_foo

pour obtenir la page affichée ci-dessous

Tutoriel de code graphique sur linstallation et lutilisation de loutil danalyse des performances xhprof sous php7

Voir l'image

Tutoriel de code graphique sur linstallation et lutilisation de loutil danalyse des performances xhprof sous php7

La partie rouge sur l'image est la pièce avec des performances inférieures et une consommation de temps plus longue. Nous pouvons la marquer en fonction. quelles fonctions Optimiser le code système pour le rouge

Supplément

    Function Name:方法名称。

    Calls:方法被调用的次数。

    Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

    Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

    IWall%:方法执行花费的时间百分比。

    Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

    EWall%:方法本身执行花费的时间百分比。

    Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

    ICpu%:方法执行花费的CPU时间百分比。

    Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

    ECPU%:方法本身执行花费的CPU时间百分比。

    Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

    IMemUse%:方法执行占用的内存百分比。

    Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

    EMemUse%:方法本身执行占用的内存百分比。

    Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

    IPeakMemUse%:Incl.MemUse峰值百分比。

    Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

    EPeakMemUse%:Excl.MemUse峰值百分比。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn