Heim >Backend-Entwicklung >PHP-Tutorial >Installation und Verwendung des PHP-Leistungsanalysetools xhprof und zugehörige Vorsichtsmaßnahmen

Installation und Verwendung des PHP-Leistungsanalysetools xhprof und zugehörige Vorsichtsmaßnahmen

jacklove
jackloveOriginal
2018-07-05 17:46:221982Durchsuche

xhprof ist ein von Facebook-Ingenieuren entwickeltes und gewartetes PHP-Leistungsanalyse- und Debugging-Tool. Es ist leichter und ressourcenschonender und wird jedem dringend empfohlen. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zur Installation und Verwendung des PHP-Leistungsanalysetools xhprof ein. Freunde in Not können darauf zurückgreifen.

Vorwort

xhprof ist ein Open-Source-PHP-Leistungsüberwachungstool von Facebook. Es beansprucht nur sehr wenig Ressourcen und kann sogar in einem bereitgestellt werden Produktionsumgebung.

Es kann in Verbindung mit graphviz verwendet werden, das die Codeausführungszeit intuitiv in Form von Bildern anzeigen kann.

Im Folgenden geht es hauptsächlich um den Installations- und Nutzungsprozess

1. Installation

(1) Herunterladen und dekomprimieren

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz

(2) Kompilieren und ausführen

cd xhprof-0.9.4/extension/
phpize //此语句编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件,一般存放在/usr/local/php/bin/目录下
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir /tmp/xhprof

(3) Bearbeiten Sie php.ini:

[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp/xhprof

xhprof. Ausgabeverzeichnis ist der Speicherpfad des von der Analyse generierten Protokolls

(4) Installieren Sie das Plug-in

Geben Sie schließlich das Array zurück, was es bedeutet ist installiert. Machen Sie sich keine Gedanken darüber, was die spezifischen Werte bedeuten, denn unten finden Sie die UI-Konfiguration. Es wird sehr intuitiv sein!

yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch

Automatische Installation

yum -y install graphviz

(5) Code einfügen

//找到你要分析的代码,在代码开始处添加,start profiling,将会统计内存占用情况
xhprof_enable(XHPROF_FLAGS_MEMORY);
//具体代码
//在代码结束位置添加
$xhprof_data = xhprof_disable(); // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"); # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");
$xhprof_runs = new \XHProfRuns_Default();
// Save the run under a namespace "xhprof_foo".
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
$xhprof_runs->save_run($xhprof_data, "xhprof_foo");

(6) Ansicht

für xhprof in (2)- 0.9 .4/xhprof_html Um eine zugängliche Site zu konfigurieren, können Sie einfach den integrierten Server von PHP

cd xhprof-0.9.4/xhprof_html
php -S 0.0.0.0:8990

verwenden und dann auf die IP+Port-Funktion zugreifen, um Berichte zu erstellen.

2. Gebrauchsanweisung

  • Funktionsname: Methodenname.

  • Aufrufe: Die Häufigkeit, mit der die Methode aufgerufen wurde.

  • Aufrufe %: Die Anzahl der Methodenaufrufe als Prozentsatz der Gesamtzahl der Methodenaufrufe auf derselben Ebene.

  • Incl.Wall Time (Mikrosekunden): Die Zeit, die für die Methodenausführung benötigt wird, einschließlich der Ausführungszeit von Untermethoden. (Einheit: Mikrosekunden)

  • IWall%: Der Prozentsatz der für die Methodenausführung aufgewendeten Zeit.

  • Exkl. Wall Time (Mikrosekunden): Die Zeit, die zum Ausführen der Methode selbst benötigt wird, ohne die Ausführungszeit von Untermethoden. (Einheit: Mikrosekunden)

  • EWall%: Der Prozentsatz der Zeit, die für die Ausführung der Methode selbst aufgewendet wurde.

  • Inkl. CPU (Mikrosekunden): CPU-Zeit, die für die Methodenausführung aufgewendet wird, einschließlich der Ausführungszeit von Untermethoden. (Einheit: Mikrosekunden)

  • ICpu%: Der Prozentsatz der CPU-Zeit, die für die Methodenausführung aufgewendet wird.

  • Exkl. CPU (Mikrosekunden): Die CPU-Zeit, die für die Ausführung der Methode selbst aufgewendet wurde, ohne die Ausführungszeit von Untermethoden. (Einheit: Mikrosekunden)

  • ECPU%: Der Prozentsatz der CPU-Zeit, die für die Ausführung der Methode selbst aufgewendet wurde.

  • Incl.MemUse(bytes): Der von der Methodenausführung belegte Speicher, einschließlich des von der Untermethodenausführung belegten Speichers. (Einheit: Bytes)

  • IMemUse%: Der Prozentsatz des durch die Methodenausführung belegten Speichers.

  • Excl.MemUse(bytes): Der von der Ausführung der Methode selbst belegte Speicher, ausgenommen der von der Ausführung von Untermethoden belegte Speicher. (Einheit: Bytes)

  • EMemUse%: Der Prozentsatz des von der Methode selbst belegten Speichers.

  • Incl.PeakMemUse(bytes): Incl.MemUse-Spitzenwert. (Einheit: Bytes)

  • IPeakMemUse%: Incl.MemUse-Spitzenprozentsatz.

  • Excl.PeakMemUse(bytes): Excl.MemUse-Spitzenwert. Einheit: (Bytes)

  • EPeakMemUse%: Excl.MemUse Spitzenprozentsatz.

Hinweis:

1. Stellen Sie vor der offiziellen Aktivierung sicher, dass Sie keine Auswirkungen haben Normaler Betrieb. Nachdem Sie sich vergewissert haben, dass der Ausgabeinhalt derselbe ist, gehen Sie erneut online.

2. Stellen Sie die max_time jeder URL nicht zu klein ein.

3. xhprof wirkt sich auf die Leistung von Onlinediensten aus. Daher ist es am besten, nur auf einem Computer zu überwachen oder den xhprof.php-Code zu ändern, um Anforderungen nach dem Zufallsprinzip zu überwachen.

Zusammenfassung

Artikel, die Sie interessieren könnten:

php package db Beispielerklärung der Methode zur Verbindung der SQLite3-Datenbank

Analyse und Erklärung der Methode zur Simulation einer HTTP-Anfrage in PHP

PHP-Implementierung von Socket Beispielerklärung der Push-Technologie

Das obige ist der detaillierte Inhalt vonInstallation und Verwendung des PHP-Leistungsanalysetools xhprof und zugehörige Vorsichtsmaßnahmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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