Heim > Artikel > Backend-Entwicklung > PHP-Leistungsanalysetool – Installation und Verwendung von xhprof
xhprof ist ein von Facebook bereitgestelltes, leichtes PHP-Leistungsanalysetool. Es ähnelt Xdebug, weist jedoch einen geringeren Leistungsaufwand auf Wenn Sie in Produktionsumgebungen verwendet werden, können Sie auch den Programmschalter verwenden, um zu steuern, ob ein Profil erstellt werden soll.
2. Installation
<spanmicrosoft yahei>1. wget http:<span>//</span><span>pecl.php.net/get/xhprof-0.9.3.tgz </span> 2. tar zxf xhprof-0.9.3.<span>tgz </span>3. cd xhprof-0.9.3/<span>extension </span>4. /usr/bin/<span>phpize (php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件) </span>5. ./configure –with-php-c/bin/php-<span>config (php</span>-<span>config的路径,也是php安装后生成的文件) </span>6.<span> make </span>7.<span> sudo make install (会自动将生成的扩展文件拷贝到扩展目录中</span>/usr/lib64/php/<span>modules) 当然具体的php文件的目录,每个人不尽相同,可根据phpinfo查询</span></spanmicrosoft>
<spanmicrosoft yahei><span>1</span><span>根据phpinfo找到 extension_dir的目录 </span><span>2</span> (/etc/php.d/xhprof.<span>ini) </span><span>3</span><span>4</span><span>添加一下内容: </span><span>5</span><span>6</span> extension=xhprof.<span>so </span><span>7</span> xhprof.output_dir=/tmp/xhprof <span>//</span><span>xhprof的分析日志</span></spanmicrosoft>
<spanmicrosoft yahei><span>1</span> sudo /etc/init.d/<span>http restart </span><span>2</span><span>3</span> 查看phpinfo是否安装成功</spanmicrosoft>
<spanmicrosoft yahei><span> 1</span><span>开头: </span><span> 2</span> xhprof_enable(); <span>//</span><span>开启监测 </span><span> 3</span><span>//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数 </span><span> 4</span><span>//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销 </span><span> 5</span><span> 6</span><span>//要测试的代码</span><span> 7</span> ... <span> 8</span> ... <span> 9</span> ... <span>10</span><span>11</span><span>结尾: </span><span>12</span><span>$xhprof_data</span> = xhprof_disable(); <span>//</span><span>停止监测,返回运行数据</span><span>13</span><span>$xhprof_root</span> = '/(xhprof的虚拟主机目录)/'<span>; </span><span>14</span><span>//</span><span>引入当初安装到xhprof虚拟主机目录中的文件</span><span>15</span><span>include_once</span><span>$xhprof_root</span>."xhprof_lib/utils/xhprof_lib.php"<span>; </span><span>16</span><span>include_once</span><span>$xhprof_root</span>."xhprof_lib/utils/xhprof_runs.php"<span>; </span><span>17</span><span>$xhprof_runs</span> = <span>new</span><span> XHProfRuns_Default(); </span><span>18</span><span>$run_id</span> = <span>$xhprof_runs</span>->save_run(<span>$xhprof_data</span>, "xhprof"<span>); </span><span>19</span><span>echo</span> '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.<span>$run_id</span>.'&source=xhprof" target="_blank">xhprof统计</a>'<span>; </span></spanmicrosoft>
Kopieren Sie die Ordner xhprof_html und xhprof_lib im Quellpaket in das von Ihnen erstellte virtuelle Verzeichnis
cp -r xhprof_html xhprof_lib /xxx/ xhprof/ (Der Zweck besteht hier darin, ein Datenanalyseverzeichnis einzurichten, das als virtueller Host für den Zugriff konfiguriert werden kann.)
Klicken Sie nach dem Ausführen auf den zurückgegebenen xhprof-Statistik-Link.
6. Achtungsprobleme und Begriffserklärungen
Klicken Sie auf der angezeigten Statistikseite auf [Vollständiges Anrufdiagramm anzeigen] für eine grafische Anzeige (die größte). Leistungsprobleme werden in Rot hervorgehoben, gefolgt von Gelb);
Nach dem Klicken wird möglicherweise eine Fehlermeldung angezeigt: Führen Sie einfach den folgenden Befehl aus: 🎜>
<spanmicrosoft yahei><span>1</span> yum install -<span>y graphviz </span><span>2</span> yum install graphviz-gd</spanmicrosoft>7. Referenzmaterialien
<spanmicrosoft yahei><span> 1</span><span>Function</span><span> Name 函数名 </span><span> 2</span><span> Calls 调用次数 </span><span> 3</span> Calls%<span> 调用百分比 </span><span> 4</span> Incl. Wall <span>Time</span><span> (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒) </span><span> 5</span> IWall%<span> 调用的包括子函数所有花费时间的百分比 </span><span> 6</span> Excl. Wall <span>Time</span> (microsec) 函数执行本身花费的时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒) </span><span> 7</span> EWall%<span> 函数执行本身花费的时间的百分比,不包括子树执行时间 </span><span> 8</span> Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl.<span> Wall Time即为等待cpu的时间 </span><span> 9</span> 减Excl.<span> Wall Time即为等待cpu的时间 </span><span>10</span> ICpu% Incl.<span> CPU(microsecs)的百分比 </span><span>11</span> Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)。 </span><span>12</span> ECPU% Excl.<span> CPU(microsec)的百分比 </span><span>13</span> Incl.<span>MemUse(bytes) 包括子函数执行使用的内存。 </span><span>14</span> IMemUse% Incl.<span>MemUse(bytes)的百分比 </span><span>15</span> Excl.MemUse(bytes) 函数执行本身内存,<span>以字节算 </span><span>16</span> EMemUse% Excl.<span>MemUse(bytes)的百分比 </span><span>17</span> Incl.PeakMemUse(bytes) Incl.<span>MemUse的峰值 </span><span>18</span> IPeakMemUse% Incl.<span>PeakMemUse(bytes) 的峰值百分比 </span><span>19</span> Excl.PeakMemUse(bytes) Excl.<span>MemUse的峰值 </span><span>20</span> EPeakMemUse% EMemUse% 峰值百分比</spanmicrosoft>
<spanmicrosoft yahei><span>1</span> http:<span>//</span><span>blog.csdn.net/maitiandaozi/article/details/8896293</span><span>2</span> http:<span>//</span><span>www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html</span><span>3</span> http:<span>//</span><span>www.cnblogs.com/wangtao_20/archive/2013/09/13/3320497.html</span><span>4</span><span>5</span> http:<span>//</span><span>avnpc.com/pages/profiler-php-performance-online-by-xhprof</span><span>6</span> http:<span>//</span><span>www.ituring.com.cn/article/133062?utm_source=tuicool</span></spanmicrosoft>