Dieses Mal werde ich Ihnen eine praktische Fallanalyse des PHP-Leistungstesttools xhprof vorstellen. Was sind die Vorsichtsmaßnahmen für die praktische Fallanalyse des PHP-Leistungstesttools xhprof? , lass uns einen Blick darauf werfen.
xhprof-Übersicht:
XHProf ist ein mehrschichtiges PHP-Leistungsanalysetool. Es meldet die Anzahl der Anfragen und verschiedene Metriken auf Funktionsebene, einschließlich Blockierungszeit, CPU-Zeit und Speichernutzung. Der Overhead einer Funktion kann in Aufrufer- und Callee-Overhead, die XHProf-Datenerfassungsphase, unterteilt werden, in der die Anrufanzahlverfolgung und inklusive metrische Bögen in einem dynamischen Aufrufgraphen eines Programms aufgezeichnet werden. Seine einzigartige Berichts-/Nachbearbeitungsphase der Datenberechnung. Während der Datenerfassung verarbeitet XHProfd rekursive Funktionsaufrufe durch die Erkennung von Schleifen und vermeidet Endlosschleifen, indem es jedem tiefen Aufruf im rekursiven Aufruf einen sinnvollen Namen gibt. Der XHProf-Analysebericht hilft, die Struktur des ausgeführten Codes zu verstehen, er verfügt über eine einfache HTML-Benutzeroberfläche (geschrieben in PHP). Die browserbasierte Benutzeroberfläche für die Leistungsanalyse erleichtert das Anzeigen oder Teilen von Ergebnissen mit Kollegen. Es können auch Anrufdiagramme erstellt werden.
Installation und Verwendung:
Vor kurzem wollte ich die Leistung von Websites vergleichen, also habe ich einen Leistungstestjob gefunden, mit dem ich herumexperimentieren kann. Es gibt viele Tools, aber im Vergleich zu früher finde ich die Installation und Verwendung von xhprof immer noch relativ einfach und die Datenanalyse ist auch in Ordnung. . .
Kompilieren und installieren Sie xhprof
cd xhprof-0.9.4/xhprof-0.9.4/extension/ phpize ./configure make sudo make install
Fügen Sie die generierte xhprof.so-Datei zur php.ini-Datei hinzu und starten Sie dann Apache neu
... #这里要使用相对路径加载的话首先要看一下extension_dir配置的路径,或者直接写上`.so`文件的绝对能够路径即可。。。 extension=xhprof.so ... sudo apachectl restart ##测试扩展是否安装成功,有如下输出则ok php --ri xhprof ... xhprof xhprof => 0.9.2 CPU num => 4 ...
graphviz installieren
cd graphviz-2.38.0/ #后面参数是要确保安装了libphp才行哦【没安装的 brew install linpng 就可】 ./configure --with-png=yes make sudo make install
Getestet
Vorher heruntergeladen Im xhprof Suchen Sie im Ordner xhprof_html, xhprof_lib und sample. Legen Sie dann diese drei Ordner dort ab, wo Sie darauf zugreifen können, und greifen Sie dann über die folgende http://xxxx/sample.php zu ://xxxx/xhprof_html/, Sie sehen einen Datensatz. Nachdem Sie darauf geklickt haben, können Sie die Seite mit den Analyseergebnissen anzeigen. Klicken Sie auf „Vollständigen CallGraph anzeigen“, um einen Link zur grafischen Berichtsseite zu erhalten.
So verwenden Sie
Angenommen, Sie möchten sich die Homepage-Leistungsdaten einer von Ihnen erstellten Website ansehen, dann müssen Sie die Leistung ermitteln Daten dieser Website Startseite Eintragsdatei , fügen Sie den xhprof-Leistungstestcode vor und nach dem Laden der Kerndatei hinzu
#开启,具体参数说明可以查看官方文档 xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY); #核心文件的执行 ... require 'index.php' ... #关闭 $xhprof_data = xhprof_disable(); #这里的路径根据自己的站点来配置 $XHPROF_ROOT = realpath(dirname(FILE) .'/'); include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof"); #这里打印出本次测试的id,方便到报表列表页面【http://xxxx/xhprof_html/】去通过对应的id找到对应的结果 var_dump($run_id);
Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben Weitere spannende Inhalte finden Sie unter PHP Chinesisch. Andere verwandte Artikel online!
Empfohlene Lektüre:
PHP-Implementierung des Zufallseliminierungsalgorithmus
Detaillierte Erläuterung der Verwendung der Yii2-Framework-Datenüberprüfung
Das obige ist der detaillierte Inhalt vonPraktische Fallanalyse des PHP-Leistungstesttools xhprof. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!