Heim > Backend-Entwicklung > PHP-Tutorial > Informationen zur PHP+xdebug-Analyse von Code-Leistungsengpässen

Informationen zur PHP+xdebug-Analyse von Code-Leistungsengpässen

藏色散人
Freigeben: 2023-04-09 18:26:02
nach vorne
2940 Leute haben es durchsucht

PHP + xdebug zur Analyse von Code-Leistungsengpässen

Normalerweise ist das Plug-in xdebug aktiviert und die Ausgabedatei für den Leistungstest wird generiert , normalerweise mit der Datei cachegrind.out.xxxx. xdebug插件,性能测试输出文件会伴随生成,通常是以cachegrind.out.xxxx 文件存在。

该文件可以通过第三方工具来进行代码性能分析。

但如果本地有多个项目/网站,所有的profile 都输出到一个文件中了,这样并不方便后面进行性能分析。

自定义profile 文件名称

可以通过配置xdebug.profiler_output_name 参数来设置输出文件名称,部分参数如下:

符号 含义 配置样例 样例文件名
%c 当前工作目录的crc32校验值 cachegrind.out.%c cachegrind.out.1258863198
%p 当前服务器进程的pid cachegrind.out.%p cachegrind.out.9685
%r 随机数 cachegrind.out.%r cachegrind.out.072db0
%s 脚本文件名(注) cachegrind.out.%s cachegrind.out._home_httpd_html_test_xdebug_test_php
%t Unix时间戳(秒) cachegrind.out.%t cachegrind.out.1179434742
%u Unix时间戳(微秒) cachegrind.out.%u cachegrind.out.1179434749_642382
%H $_SERVER['HTTP_HOST'] cachegrind.out.%H cachegrind.out.localhost
%R $_SERVER['REQUEST_URI'] cachegrind.out.%R cachegrind.out._test_xdebug_test_php_var=1_var2
%S session_id (来自$_COOKIE 如果设置了的话) cachegrind.out.%S cachegrind.out.c70c1ec2375af58f74b390bbdd2a679d
%% %字符 cachegrind.out.%% cachegrind.out.%%

编辑php.ini 配置文件:

xdebug.profiler_output_name = cachegrind.out.%H
Nach dem Login kopieren

然后重启 php server。

在Mac 下,profile 文件存放于/var/tmp/目录中。

性能分析

在Mac 下,有MacCallGrind 和 qcachegrind 可以使用,不过前者是收费,直接通过Apple Store下载,后者是免费。需要手动安装。

安装graphviz,用来Call Graph功能:

$ brew install graphviz
Nach dem Login kopieren

安装 qcachegrind:

$ brew install qcachegrind
Nach dem Login kopieren

安装完成之后,就可以打开 qcachegrind 应用了,图形界面如下:

Informationen zur PHP+xdebug-Analyse von Code-Leistungsengpässen

其他

不过需要注意,开启了profile

Diese Datei kann für die Code-Leistungsanalyse durch Tools von Drittanbietern verwendet werden.

Aber wenn mehrere Projekte/Websites lokal vorhanden sind, werden alle Profile in einer Datei ausgegeben, was für eine spätere Leistungsanalyse nicht praktisch ist.

Benutzerdefinierter Profildateiname

Informationen zur PHP+xdebug-Analyse von Code-LeistungsengpässenSie können den Namen der Ausgabedatei festlegen, indem Sie den Parameter xdebug.profiler_output_name konfigurieren. Einige Parameter lauten wie folgt:

cachegrind.out.%H table> Bearbeiten Sie die Konfigurationsdatei php.ini:

$ sudo rm -fr /private/var/tmp/cachegrind.out.*
Nach dem Login kopieren
Dann starten Sie den PHP-Server neu. 🎜Unter Mac werden Profildateien im Verzeichnis /var/tmp/ gespeichert. 🎜

Leistungsanalyse

🎜Unter Mac sind MacCallGrind und qcachegrind verfügbar, ersteres ist jedoch kostenpflichtig und kann direkt über den Apple Store heruntergeladen werden, während letzteres kostenlos ist. Erfordert eine manuelle Installation. 🎜🎜Graphviz für die Call Graph-Funktion installieren: 🎜rrreee🎜Qcachegrind installieren: 🎜rrreee🎜Nachdem die Installation abgeschlossen ist, können Sie die Anwendung qcachegrind wie folgt öffnen: 🎜🎜Informationen zur PHP+xdebug-Analyse von Code-Leistungsengpässen🎜

Andere

🎜 Es ist jedoch zu beachten, dass nach dem Aktivieren der Dateiausgabe profile bei vielen lokalen Projekten leicht ein großer Bereich des Festplattenspeichers belegt wird. Das Bild unten zeigt den Status Ich habe seit etwa einem halben Jahr nicht mehr aufgeräumt: 🎜🎜🎜🎜🎜🎜🎜🎜 Das Reinigen kann mit dem Befehl erfolgen: 🎜rrreee🎜
Symbol Bedeutung Konfigurationsbeispiel Name der Beispieldatei
%c Crc32-Prüfwert des aktuellen Arbeitsverzeichnisses cachegrind.out.%c cachegrind.out.1258863198
%p Die PID des aktuellen Serverprozesses cachegrind.out.%p cachegrind.out .9685
%r Zufallszahl cachegrind.out.%r cachegrind.out .072db0
%s Name der Skriptdatei (Hinweis) cachegrind.out.%s cachegrind.out._home_httpd_html_test_xdebug_test_php
%t Unix-Zeitstempel (Sekunden) cachegrind.out.%t td> cachegrind.out.1179434742
%u Unix-Zeitstempel (Mikrosekunden) cachegrind.out .%u cachegrind.out.1179434749_642382
%H $_SERVER['HTTP_HOST']cachegrind.out.localhost
%R $_SERVER['REQUEST_URI'] cachegrind.out.%R cachegrind.out._test_xdebug_test_php_var=1_var2
%S session_id (von $_COOKIE, falls gesetzt) cachegrind.out.%S cachegrind.out.c70c1ec2375af58f74b390bbdd2a679d
% % % Zeichen cachegrind.out.%% cachegrind.out.%%

Das obige ist der detaillierte Inhalt vonInformationen zur PHP+xdebug-Analyse von Code-Leistungsengpässen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage