xhprof安装和使用
2010-02-02 14:57
141 查看
关于 XHProf
XHProf 是 FaceBook 开发的一个函数级别的 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 。
查看源代码
打印?
当然,我们还需要修改 php.ini 来确保 XHProf 的正常运行。
我们需要先建立一个目录用来存储分析数据文件,例如 /data/zivn.me/xhprof/。
查看源代码
打印?
使用 XHProf
使用 XHProf 非常简单,我们只需要修改少许代码即可实现。
例如,我们需要分析代码执行时关于 CPU 和内存的数据。
查看源代码
打印?
这样,当我们运行程序之后,会在 /data/zivn.me/xhprof/ 之中生成分析数据文件。
文件名类似于 4b4c239a86593.xhprof ,我们可以通过改变 save_run 的参数,来改变文件后缀。
由于分析可能会影响响应速度,通常我们会加上一个随机数,随机取样,而不是分析所有用户请求的执行过程。
查看源代码
打印?
查看 XHProf 分析数据
例如,我的域名是 zivn.me,现在我们就可以通过 web 来查看详细的分析数据了。
查看单个报告。
我们想要查看 4b4c239a86593.xhprof 这个报告的详细信息,查看链接如下:
http://zivn.me/xhprof_html/index.php?run=4b4c239a86593&source=xhprof
比较两个报告。
我们想比较 4b4c239a86593.xhprof 和 4b4c2645794f0.xhprof 两个报告,查看链接如下:
http://zivn.me/xhprof_html/index.php?run1=4b4c239a86593&run2=4b4c2645794f0&source=xhprof
我们可以看到精确到函数级的分析数据,包括调用次数、CPU、内存等,还可以不断的向下跟踪。
相信如此详细的数据,将会给程序优化工作,带来巨大的帮助和便利。
XHProf 是 FaceBook 开发的一个函数级别的 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 。
查看源代码
打印?
1 | wget http://pecl.php.net/get/xhprof-0.9.2.tgz |
2 | tar zxf xhprof-0.9.2.tgz |
3 | cd xhprof-0.9.2 |
4 | cp -r xhprof_html xhprof_lib /data/zivn.me/ |
5 | cd extension |
6 | phpize |
7 | ./configure |
8 | make |
9 | make install |
我们需要先建立一个目录用来存储分析数据文件,例如 /data/zivn.me/xhprof/。
查看源代码
打印?
1 | [xhprof] |
2 | extension=xhprof.so |
3 | xhprof.output_dir=/data/zivn.me/xhprof/ |
使用 XHProf 非常简单,我们只需要修改少许代码即可实现。
例如,我们需要分析代码执行时关于 CPU 和内存的数据。
查看源代码
打印?
01 | xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); |
02 |
03 | // Test Code Start |
04 | ………… |
05 | // Test Code End |
06 |
07 | $xhprofData =xhprof_disable(); |
08 |
09 | include_once "/data/zivn.me/xhprof_lib/utils/xhprof_lib.php" ; |
10 | include_once "/data/zivn.me/xhprof_lib/utils/xhprof_runs.php" ; |
11 |
12 | $xhprofRuns = new XHProfRuns_Default(); |
13 | $xhprofRuns ->save_run( $xhprofData , "xhprof" ); |
文件名类似于 4b4c239a86593.xhprof ,我们可以通过改变 save_run 的参数,来改变文件后缀。
由于分析可能会影响响应速度,通常我们会加上一个随机数,随机取样,而不是分析所有用户请求的执行过程。
查看源代码
打印?
01 | $randKey =mt_rand(1,10000); |
02 |
03 | if ( $randKey ==1) |
04 | { |
05 | xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); |
06 | } |
07 |
08 | // Test Code Start |
09 | ………… |
10 | // Test Code End |
11 |
12 | if ( $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 | } |
例如,我的域名是 zivn.me,现在我们就可以通过 web 来查看详细的分析数据了。
查看单个报告。
我们想要查看 4b4c239a86593.xhprof 这个报告的详细信息,查看链接如下:
http://zivn.me/xhprof_html/index.php?run=4b4c239a86593&source=xhprof
比较两个报告。
我们想比较 4b4c239a86593.xhprof 和 4b4c2645794f0.xhprof 两个报告,查看链接如下:
http://zivn.me/xhprof_html/index.php?run1=4b4c239a86593&run2=4b4c2645794f0&source=xhprof
我们可以看到精确到函数级的分析数据,包括调用次数、CPU、内存等,还可以不断的向下跟踪。
相信如此详细的数据,将会给程序优化工作,带来巨大的帮助和便利。
相关文章推荐
- xhprof安装和使用方法(linux版本)
- php轻量级的性能分析工具xhprof的安装使用
- PHP性能测试工具xhprof的安装和使用
- xhprof安装&&使用
- PHP性能追踪及分析工具xhprof的安装与使用
- PHP安装和使用xhprof
- linux下XHProf的安装和使用
- xhprof安装和使用方法
- xhprof扩展安装与使用
- 【PHP性能优化学习】之xhprof安装&&使用
- xhprof 安装与使用
- PHP性能分析工具xhprof的安装使用与注意事项
- XHProf安装使用笔记
- xhprof 安装使用
- PHP性能分析工具XHProf安装使用教程
- xhprof安装&&使用
- 【PHP】PHP7 下安装并使用 xhprof 性能分析工具
- PHP性能测试工具xhprof安装与使用
- PHP性能分析工具xhprof的安装使用与注意事项
- xhprof安装&&使用