Download - Php性能检测扩展——xh prof

Transcript
Page 1: Php性能检测扩展——xh prof

PHP性能检测扩展—— XHProf• 野马

Page 2: Php性能检测扩展——xh prof

• 安装 XHProf

• 应用实例

• 关于 XHProf

• 相关事项

Page 3: Php性能检测扩展——xh prof

• XHProf 是一个分层 PHP 性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间, CPU 时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销。原始数据收集部分是用纯 C 实现的,是一个名叫 xhprof 的 Zend 扩展 。• XHProf 是 facebook 开源出来的一个 php 轻量级的性能分析工具,跟

Xdebug 类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行 profile 。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次 数的追踪和包容性的指标弧在动态 callgraph 的一个程序。它独有的数据计算的报告 / 后处理阶段。在数据收集时, XHProfd 通过检测循环来处理递 归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf 的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。

• 关于 XHProf

Page 4: Php性能检测扩展——xh prof

• 关于 XHProf

Page 5: Php性能检测扩展——xh prof

• 下载:• xhprof-0.9.2.tgz • graphviz-2.24.0.tar.gz

• 安装 XHProf

Page 6: Php性能检测扩展——xh prof

• 别凭空讲了,该实战了!! ~ • 一、下载编译• 二、配置 PHP.ini• 三、写测试 PHP 文件• 四、浏览测试报告• 五、其他功能介绍

• 安装 XHProf

Page 7: Php性能检测扩展——xh prof

# wget http://pecl.php.net/get/xhprof-0.9.2.tgz# tar zxf xhprof-0.9.2.tgz# cd xhprof-0.9.2# cp -r xhprof_html xhprof_lib /var/www/www.test.com/# cd extension/# /usr/local/php/bin/phpize# ./configure –with-php-config=/usr/local/php/bin/php-config# make && make install

• 安装 XHProf

[xhprof] extension="/usr/local/php/lib/xhprof.so" xhprof.output_dir=/var/www/xhprof

Page 8: Php性能检测扩展——xh prof

# wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz# tar zxf graphviz-2.24.0.tar.gz# cd graphviz-2.24.0# ./configure# make && make install

• 安装 Graphviz

Page 9: Php性能检测扩展——xh prof

• 应用实例

Page 10: Php性能检测扩展——xh prof

• 应用实例

Page 11: Php性能检测扩展——xh prof

• 标题内容

• 应用实例

Page 12: Php性能检测扩展——xh prof

• 应用实例

Page 13: Php性能检测扩展——xh prof

• 应用实例

Page 14: Php性能检测扩展——xh prof

• 应用实例

Page 15: Php性能检测扩展——xh prof

• 应用实例

Page 16: Php性能检测扩展——xh prof

• 应用实例屏蔽函数

Page 17: Php性能检测扩展——xh prof

• 应用实例

Page 18: Php性能检测扩展——xh prof

• 相关事项一、数据结构可以根据需要定义存储方式二、分析界面 PHP 代码可以根据需要重写三、数据可以进行对比( diff 报告),汇总分析(汇总报告)四、 CPU 的计时器是粗粒度的,毫秒精度,对性能消耗大,误差大五、 XHProf 支持采样设置六、可以在 PHP 上做抽样

if (mt_rand(1, 10000) == 1) { xhprof_enable(XHPROF_FLAGS_MEMORY); $xhprof_on = true; }request 结束时 ( 或是在退出函数中 ) ,您可以这么做: if ($xhprof_on) { // stop profiler $xhprof_data = xhprof_disable(); // save $xhprof_data somewhere (say a central DB) ... }

Page 19: Php性能检测扩展——xh prof

• 野马• QQ : 46163020• Email : [email protected]• WEB : http://yuenshui.com( 被和谐

中 )