【转】给Windows + Apache 2.2 + PHP 5.3 安装PHP性能测试工具 xhprof,性能测试xhprof
【转】给Windows + Apache 2.2 + PHP 5.3 安装PHP性能测试工具 xhprof,性能测试xhprof
原文链接:http://blog.snsgou.com/post-816.html
1、下载XHProf
到这里 http://dev.freshsite.pl/php-extensions/xhprof.html 下载Windows版本的XHProf,我这里选择下载
XHProf 0.10.3 for PHP 5.3 vc9 和 xhprof_html
2、安装XHProf
把压缩包里的 xhprof_0.10.3_php53_vc9.dll 拷贝到PHP的ext目录下,然后在php.ini配置里面加入配置(不要忘记创建对应的文件夹)
[xhprof] extension=xhprof_0.10.3_php53_vc9.dll ; directory used by default implementation of the iXHProfRuns ; interface (namely, the XHProfRuns_Default class) for storing ; XHProf runs. xhprof.output_dir="d:/PHP/xhprof/log"
3、使用XHProf
将 xhprof_html.zip 解压到你想测试的网站根目录,如我放在了网站目录的 /public/xhprof/windows 下。
测试文件:
<?php function bar($x) { if ($x > 0) { bar($x - 1); } } function foo() { for ($idx = 0; $idx < 5; $idx++) { bar($idx); $x = strlen("abc"); } } // 启动xhprof xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); // 调用foo函数,也是我们要分析的函数 foo(); // 停止xhprof $xhprof_data = xhprof_disable(); // 取得统计数据 //print_r($xhprof_data); $os = 'windows'; $XHPROF_ROOT = dirname(__FILE__) . '/public/xhprof/' . $os; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; // 保存统计数据,生成统计ID和source名称 $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); // source名称是xhprof_foo // 查看统计信息 echo "<div style='margin: 50px auto; padding :10px; width: 92px; font-size: 16px; background: #ff0000;'><a style='color:#ffff00;' href='/public/xhprof/" . $os . "/xhprof_html/index.php?run=" . $run_id . "&source=xhprof_foo' target='_blank'>XHProf view</a></div>";
当点击链接“[View Full Callgraph]”时,会报错:
<p>failed to execute cmd: " dot -Tpng"</p>
所以还需要下载图形工具 Graphviz。
4、下载Graphviz
到这里 http://www.graphviz.org/Download_windows.php 下载Windows版本的Graphviz,我这里选择下载
graphviz-2.38.zip
5、安装Graphviz
解压后,把Graphviz拷贝到某个目录,如 d:/PHP/xhprof/graphviz-2.38/
6、配置Graphviz
找到上述提到网站目录 /public/xhprof/windows/ 下的 config.php 文件,调整如下:
<?php /** * Set the absolute paths on your system */ define('ERROR_FILE', 'd:/PHP/xhprof/log/xhprof_dot_errfile.log'); define('TMP_DIRECTORY', 'd:/PHP/xhprof/tmp'); define('DOT_BINARY', 'd:/PHP/xhprof/graphviz-2.38/release/bin/dot.exe');
重新点击链接 [View Full Callgraph],一张期待已久的效果图出来啦:

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Unterschiede zwischen PHP5 und PHP8 bestehen in Bezug auf Leistung, Sprachstruktur, Typsystem, Fehlerbehandlung, asynchrone Programmierung, Standardbibliotheksfunktionen und Sicherheit. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt einen JIT-Compiler ein, der einige hochfrequente Ausführungscodes kompilieren und optimieren kann, wodurch die Ausführungsgeschwindigkeit verbessert wird. PHP8 führt einige neue Sprachstrukturen und Funktionen ein. PHP8 unterstützt benannte Parameter, sodass Entwickler Parameternamen anstelle der Parameterreihenfolge usw. übergeben können.

So ändern Sie Port 80 in PHP5: 1. Bearbeiten Sie die Portnummer in der Apache-Serverkonfigurationsdatei. 2. Bearbeiten Sie die PHP-Konfigurationsdatei, um sicherzustellen, dass PHP auf dem neuen Port funktioniert. 3. Starten Sie den Apache-Server neu Beginnen Sie mit der Ausführung auf dem neuen Port.

Lösungsschritte für PHP5, das Port 9000 nicht überwacht: 1. Überprüfen Sie die PHP-FPM-Konfigurationsdatei. 2. Starten Sie den PHP-FPM-Dienst neu. 3. Schalten Sie die Firewall aus oder konfigurieren Sie die Portweiterleitung. 4. Überprüfen Sie, ob andere Prozesse Port 9000 belegen.

Die Syntaxunterschiede zwischen PHP7 und PHP5 sind: 1. PHP7 führt strikte Typdeklarationen ein, während der Typ von PHP5-Variablen implizit ist. 2. PHP7 führt Unterstützung für Skalartypdeklarationen ein, PHP5 jedoch nicht. 3. PHP7 führt den NULL-Merge-Operator ein PHP5 prüft, ob eine Variable existiert und nicht null ist. Sie müssen eine bedingte Anweisung verwenden. 4. PHP7 fügt einen neuen Vergleichsoperator „<=>“ hinzu, PHP5 führt jedoch keine neue Funktion ein, während PHP5 nicht.

Zu den Unterschieden zwischen der Version von PHP 7 und 5 gehören Leistungsverbesserungen, Skalartypdeklarationen, Rückgabewerttypdeklarationen, Verbesserungen bei der Ausnahmebehandlung, anonyme Klassen, Syntaxverbesserungen, neue Operatoren, verbesserte Fehlerbehandlung und die Entfernung einiger alter Funktionen. Detaillierte Einführung: 1. Leistungsverbesserung: PHP7 führt eine neue Zend-Engine mit dem Namen Zend Engine 3.0 ein. Die Leistung von PHP7 ist etwa doppelt so hoch wie die von PHP5, hauptsächlich durch verbesserte Speicherverwaltung, optimierte Funktionsaufrufe und Ausnahmebehandlung , verbesserte Speicherbereinigung usw.

Bei der Verwendung von PHP5 kann es bei einigen Benutzern vorkommen, dass Port 9000 nicht abgehört werden kann. Zu diesem Zeitpunkt müssen wir einige Konfigurations- und Fehlerbehebungsarbeiten durchführen, um dieses Problem zu lösen.

Wenn Sie ein Website-Administrator sind, kann es vorkommen, dass Sie den PHP5-Port vom Standardport 80 ändern müssen. Dieser Vorgang kann etwas eilig sein, aber solange Sie die folgenden Schritte befolgen, wird er problemlos abgeschlossen.

PHP ist eine weit verbreitete serverseitige Programmiersprache zur Entwicklung dynamischer Websites und Anwendungen. In den letzten Jahren hat die Veröffentlichung von PHP7 einige Aufmerksamkeit erregt. PHP7 weist gegenüber früheren Versionen (z. B. PHP5) viele Verbesserungen und Optimierungen auf. In diesem Artikel werden wir die Syntaxunterschiede zwischen PHP7 und PHP5 untersuchen.
