mac下使用xhprof测试php代码性能
准备工作
- 安装了brew
开始工作
关于xhprof:
XHProf 是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销。原始数据收集部分是用纯C实现的,是一个名叫xhprof的 Zend扩展 。XHProf有一个简单的HTML的用户界面( PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。
XHProf 报告往往可以有助于理解被执行的代码的结构。的等级性质的报告可用来确定,例如,什么链要求导致了所谓的特殊功能得到。
XHProf 可以比较两次运行的结果(又名“差异报告”)或是从多次运行得到的汇总数据。差异和汇总报告,就像单一运行报告一样,也提供“平板”以及“分层”的性能分析视图。
XHProf 是一种轻量级的性能分析工具。在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。
XHProf 的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计
利用brew安装xhprof
|
|
然后在电脑中brew默认的安装位置会出现xhprof_html和xhprof_lib两个文件夹,将这个两个文件夹copy到你自己的www目录中你自己建立的文件夹中
|
|
同时在www目录中的xhprof中建立一个xhprof_run文件夹,这里是作为测试文件的输出文件
然后在php的配置文件中配置
因为是使用了brew所以配置文件是在conf.d中的ext-xhprof.conf中的
以上配置完成后我们再利用Nginx配置一个现实的网站,
|
|
重启php和nginx
下一步我们就是在代码中使用xhprof了,
|
|
我们可以访问http://
至此我们已经配置完成了
最后给出php官方文档中的地址:http://php.net/manual/zh/book.xhprof.php
- ps:安装graphviz,生成程序运行的流程图
|
|
总结
有些时候php程序运行太慢了我们就可以看到到底是什么拖慢了运行速度了