1.前言
在前面的文章《性能优化之PHP优化》中,我们简单的介绍了一款PHP性能分析工具XHPorf
但是没有深入讲解如何安装到wamp环境下,下面我们对其安装和测试详细了解
2.下载xhprof客户端包
下载连接如下:
链接:https://pan.baidu.com/s/1bh7rA-wJ1Ejndgp2aua0EA
提取码:g8bz
下载后,将其放到WWW根目录
3.安装相应php扩展
首先将文件里的下面这两个包放到php的ext文件下
然后在php的php.ini文件中加入这段
可复制代码:
[xhprof]
extension=php_xhprof.dll
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
xhprof.output_dir="F:\wamp\www\xhprof-0.9.3\xprof_log"
注意xhprof.output_dir的路径必须指向下图文件夹的xprof_log
最后查看phpinfo.php,当你能够查看到下图所示,就表示php扩展正常开启
4.如何使用?(开启与存储)
可以前往文件的案例查看如何使用(路径如下图所示)
该文件内重要的两个函数是
5.如何查看测试结果
在xhprof-0.9.3/xhprof_html/里面就保存着我们所需要的测试结果
点击进去,就能看到性能测试结果
而点击[View Full Callgraph]就能转换成图形解释(需要安装插件)
以图表方式查看
1、需要安装 Graphviz 软件(windows,linux版都有)
(下载地址:http://www.graphviz.org/download/)
2、然后修改xhprof的配置文件 config.php
最后,安装成功后点击[View Full Callgraph]就会显示下图
上图的红色节点是整个php程序执行过程中的瓶颈,黄色路径为整个过程耗时最长的路径
输出结果的含义:
ct 函数调用次数,
wt 花费的时间,
cpu 花费的 CPU 时间(微秒即百万分之一秒),
mu 使用的内存(bytes),
pmu 使用的内存峰值(bytes)。
web 分析结果页面含义:
Calls:函数的调用次数
Incl. Wall Time (microsec) :包含内部函数花费的时间,单位微秒
Excl. Wall Time (microsec):不包含内部函数花费的时间,单位微秒
及所占百分比(%)
注:Incl.:为 Including 包含的简写;Excl.:为 Excluding 不包含的简写
Wall Time:意为挂钟时间即任务花费的时间
main():一个虚构的函数,程序根节点
bar@2:递归调用 2 次
Incl. CPU (microsecs):包含内部函数 CPU 花费的时间,单位微秒
Excl. CPU (microsec):不包含内部函数 CPU 花费的时间,单位微秒
Incl. MemUse (bytes):包含内部函数所占内存,单位字节
Excl. MemUse (bytes):不包含内部函数所占内存,单位字节
Incl. PeakMemUse (bytes):包含内部函数所占内存峰值,单位字节
Excl. PeakMemUse (bytes):不包含内部函数所占内存峰值,单位字节
及所占百分比(%)
我们可以认为共三种情况:
1. 包括内部函数
2. 不包括内部函数或者说函数本身
3. 所占总数(时间或内存使用)的百分比
参考文章:
xhprof 安装和使用:
https://www.cnblogs.com/siqi/p/3790186.html
调用graphviz软件报错处理:
https://www.cnblogs.com/wuxiang12580/p/10346847.html