PHP性能检测扩展——XHProf

2,058 views
1,944 views

Published on

北京地区PHP爱好者2010聚会[12月19日胜利举办,CU、ThinkinginLamp联办],野马主讲《PHP性能检测扩展——XHProf 》,详情见详情goo.gl/xCCxy或goo.gl/j89N9

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
  • hello, do you have also an english version of this presentation?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,058
On SlideShare
0
From Embeds
0
Number of Embeds
148
Actions
Shares
0
Downloads
46
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

PHP性能检测扩展——XHProf

  1. 1. PHP 性能检测扩展—— XHProf <ul><li>野马 </li></ul>
  2. 2. <ul><li>安装 XHProf </li></ul><ul><li>应用实例 </li></ul><ul><li>关于 XHProf </li></ul><ul><li>相关事项 </li></ul>
  3. 3. <ul><li>XHProf 是一个分层 PHP 性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间, CPU 时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销。原始数据收集部分是用纯 C 实现的,是一个名叫 xhprof 的 Zend 扩展 。 </li></ul><ul><li>XHProf 是 facebook 开源出来的一个 php 轻量级的性能分析工具,跟 Xdebug 类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行 profile 。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次 数的追踪和包容性的指标弧在动态 callgraph 的一个程序。它独有的数据计算的报告 / 后处理阶段。在数据收集时, XHProfd 通过检测循环来处理递 归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。 XHProf 的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。 </li></ul><ul><li>关于 XHProf </li></ul>
  4. 4. <ul><li>关于 XHProf </li></ul>
  5. 5. <ul><li>下载: </li></ul><ul><li>xhprof-0.9.2.tgz </li></ul><ul><li>graphviz-2.24.0.tar.gz </li></ul><ul><li>安装 XHProf </li></ul>
  6. 6. <ul><li>别凭空讲了,该实战了!! ~ </li></ul><ul><li>一、下载编译 </li></ul><ul><li>二、配置 PHP.ini </li></ul><ul><li>三、写测试 PHP 文件 </li></ul><ul><li>四、浏览测试报告 </li></ul><ul><li>五、其他功能介绍 </li></ul><ul><li>安装 XHProf </li></ul>
  7. 7. # 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 <ul><li>安装 XHProf </li></ul>[xhprof] extension=&quot;/usr/local/php/lib/xhprof.so&quot; xhprof.output_dir=/var/www/xhprof
  8. 8. # 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 <ul><li>安装 Graphviz </li></ul>
  9. 9. <ul><li>应用实例 </li></ul>
  10. 10. <ul><li>应用实例 </li></ul>
  11. 11. <ul><li>标题内容 </li></ul><ul><li>应用实例 </li></ul>
  12. 12. <ul><li>应用实例 </li></ul>
  13. 13. <ul><li>应用实例 </li></ul>
  14. 14. <ul><li>应用实例 </li></ul>
  15. 15. <ul><li>应用实例 </li></ul>
  16. 16. <ul><li>应用实例 </li></ul>屏蔽函数
  17. 17. <ul><li>应用实例 </li></ul>
  18. 18. <ul><li>相关事项 </li></ul>一、数据结构可以根据需要定义存储方式 二、分析界面 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) ... }
  19. 19. <ul><li>野马 </li></ul><ul><li>QQ : 46163020 </li></ul><ul><li>Email : [email_address] </li></ul><ul><li>WEB : http://yuenshui.com( 被和谐中 ) </li></ul>

×