Maison >php教程 >php手册 >PHP性能分析工具

PHP性能分析工具

WBOY
WBOYoriginal
2016-06-06 19:57:411108parcourir

XHProf 是 FaceBook 开发的一个函数级别的 PHP 分层分析器。 数据收集部分是一个基于 C 的 PHP 扩展,分析报告是一系列基于 PHP 的 HTML 导航页面。 XHProf 能统计每个函数的调用次数、内存使用、CPU占用等多项重要的数据。 并且 XHProf 还能比较两个统计样

XHProf 是 FaceBook 开发的一个函数级别的 PHP 分层分析器。

数据收集部分是一个基于 C 的 PHP 扩展,分析报告是一系列基于 PHP 的 HTML 导航页面。

XHProf 能统计每个函数的调用次数、内存使用、CPU占用等多项重要的数据。

并且 XHProf 还能比较两个统计样本,或从多个数据样本中汇总结果。

XHProf 是分析 PHP 程序执行效率的利器,能让我们得到更底层的的分析数据。


编译安装

PHP性能分析工具

<span>wget</span> http:<span>//</span><span>pecl.php.net/get/xhprof-0.9.2.tgz</span>

<span>tar</span> zxf xhprof-<span>0.9</span>.<span>2</span><span>.tgz

cd xhprof</span>-<span>0.9</span>.<span>2</span>/extension/

<span>sudo</span><span> phpize
.</span>/configure --with-php-config=/usr/local/php/bin/php-<span>config
</span><span>sudo</span> <span>make</span>
<span>sudo</span> <span>make</span> <span>install</span>

PHP性能分析工具

配置 php.ini

在php.ini里加入

PHP性能分析工具

<span>[xhprof]
extension</span>=<span>xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) </span><span>for</span><span> storing
; XHProf runs.
;
;xhprof.output_dir</span>=<directory_for_storing_xhprof_runs><span>
xhprof.output_dir</span>=/tmp/xhprof</directory_for_storing_xhprof_runs>

PHP性能分析工具

注:如果是64位系统需要将xhprof.so文件拷贝到相关的lib64的目录下

 

将代码加入到要测试的php当中

PHP性能分析工具

<span> 1</span> <span>pho
</span><span> 2</span> <span>//</span><span> cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
</span><span> 3</span> <span>// 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY </span>
<span> 4</span> xhprof_enable(XHPROF_FLAGS_CPU +<span> XHPROF_FLAGS_MEMORY);
</span><span> 5</span> 
<span> 6</span> <span>//</span><span> 要测试的php代码</span>
<span> 7</span> 
<span> 8</span> 
<span> 9</span> <span>$data</span> = xhprof_disable();   <span>//</span><span>返回运行数据
</span><span>10</span>  
<span>11</span> <span>// xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中</span>
<span>12</span> <span>include_once</span> "xhprof_lib/utils/xhprof_lib.php"<span>;  
</span><span>13</span> <span>include_once</span> "xhprof_lib/utils/xhprof_runs.php"<span>;  
</span><span>14</span>  
<span>15</span> <span>$objXhprofRun</span> = <span>new</span><span> XHProfRuns_Default(); 
</span><span>16</span> 
<span>17</span> <span>//</span><span> 第一个参数j是xhprof_disable()函数返回的运行信息
</span><span>18</span> <span>// 第二个参数是自定义的命名空间字符串(任意字符串),
</span><span>19</span> <span>// 返回运行ID,用这个ID查看相关的运行结果</span>
<span>20</span> <span>$run_id</span> = <span>$objXhprofRun</span>->save_run(<span>$data</span>, "xhprof"<span>);
</span><span>21</span> <span>var_dump</span>(<span>$run_id</span>);

PHP性能分析工具

 

查看运行结果

PHP性能分析工具

将xhprof_lib&&<span>xhprof_html相关目录copy到可以访问到的地址
访问 xxx</span>/xhprof_html/index.php?run=$run_id&source=<span>bluefrog 就可经看到你的php代码运行的相关情况

下面是一些参数说明
Inclusive Time                 包括子函数所有执行时间。
Exclusive Time</span>/<span>Self Time  函数执行本身花费的时间,不包括子树执行时间。
Wall Time                        花去了的时间或挂钟时间。
CPU Time                        用户耗的时间</span>+<span>内核耗的时间
Inclusive CPU                  包括子函数一起所占用的CPU
Exclusive CPU                  函数自身所占用的CPU</span>

PHP性能分析工具

注: 需要使用ctype这个扩展



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP开发常规安全问题总结Article suivant:致PHP开发者的一封信