xhprof安装和使用

关于 XHProf

XHProfFaceBook 开发的一个函数级别的 PHP 分层分析器。

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

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

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

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

安装 XHProf

XHProf 目前的最新版本是 0.92,你可以从它的主页(http://pecl.php.net/package/xhprof)下载它的最新版本。

例如,我的 Web 目录是 /data/zivn.me,那么我可以通过下面的命令来安装 XHProf

2tar zxf xhprof-0.9.2.tgz
3cd xhprof-0.9.2
4cp -r xhprof_html xhprof_lib /data/zivn.me/
5cd extension
6phpize
7./configure
8make
9make install

当然,我们还需要修改 php.ini 来确保 XHProf 的正常运行。

我们需要先建立一个目录用来存储分析数据文件,例如 /data/zivn.me/xhprof/

1[xhprof]
2extension=xhprof.so
3xhprof.output_dir=/data/zivn.me/xhprof/

使用 XHProf

使用 XHProf 非常简单,我们只需要修改少许代码即可实现。

例如,我们需要分析代码执行时关于 CPU 和内存的数据。

01xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
02  
03// Test Code Start
04…………
05// Test Code End
06  
07$xhprofData = xhprof_disable();
08  
09include_once "/data/zivn.me/xhprof_lib/utils/xhprof_lib.php";
10include_once "/data/zivn.me/xhprof_lib/utils/xhprof_runs.php";
11  
12$xhprofRuns = new XHProfRuns_Default();
13$xhprofRuns->save_run($xhprofData, "xhprof");

这样,当我们运行程序之后,会在 /data/zivn.me/xhprof/ 之中生成分析数据文件。

文件名类似于 4b4c239a86593.xhprof ,我们可以通过改变 save_run 的参数,来改变文件后缀。

由于分析可能会影响响应速度,通常我们会加上一个随机数,随机取样,而不是分析所有用户请求的执行过程。

01$randKey = mt_rand(1, 10000);
02  
03if ($randKey == 1)
04{
05    xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
06}
07  
08// Test Code Start
09…………
10// Test Code End
11  
12if ($randKey == 1)
13{
14    $xhprofData = xhprof_disable();
15  
16    include_once "/data/zivn.me/xhprof_lib/utils/xhprof_lib.php";
17    include_once "/data/zivn.me/xhprof_lib/utils/xhprof_runs.php";
18  
19    $xhprofRuns = new XHProfRuns_Default();
20    $xhprofRuns->save_run($xhprofData, "xhprof");
21}

查看 XHProf 分析数据 

例如,我的域名是 zivn.me,现在我们就可以通过 web 来查看详细的分析数据了。

  1. 查看单个报告。

    我们想要查看 4b4c239a86593.xhprof 这个报告的详细信息,查看链接如下:

    http://zivn.me/xhprof_html/index.php?run=4b4c239a86593&source=xhprof

  2. 比较两个报告。

    我们想比较 4b4c239a86593.xhprof4b4c2645794f0.xhprof 两个报告,查看链接如下:

    http://zivn.me/xhprof_html/index.php?run1=4b4c239a86593&run2=4b4c2645794f0&source=xhprof

我们可以看到精确到函数级的分析数据,包括调用次数、CPU、内存等,还可以不断的向下跟踪。

相信如此详细的数据,将会给程序优化工作,带来巨大的帮助和便利。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值