现在的位置: 首页PHP技术 > 正文
XHProf安装使用教程
关键词:XHProf ┊ 来源: 原创收藏

XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。

编译安装

wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
sudo phpize
./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install

配置 php.ini

在php.ini里加入

[xhprof]
extension=xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
;xhprof.output_dir=<directory_for_storing_xhprof_runs>
xhprof.output_dir=/tmp/xhprof

注:如果是64位系统需要将xhprof.so文件拷贝到相关的lib64的目录下

将代码加入到要测试的php当中

1 <?pho
 2 // cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
 3 // 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY 
 4 xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
 5 
 6 // 要测试的php代码
 7 
 8 
 9 $data = xhprof_disable();   //返回运行数据
10  
11 // xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中
12 include_once "xhprof_lib/utils/xhprof_lib.php";  
13 include_once "xhprof_lib/utils/xhprof_runs.php";  
14  
15 $objXhprofRun = new XHProfRuns_Default(); 
16 
17 // 第一个参数j是xhprof_disable()函数返回的运行信息
18 // 第二个参数是自定义的命名空间字符串(任意字符串),
19 // 返回运行ID,用这个ID查看相关的运行结果
20 $run_id = $objXhprofRun->save_run($data, "xhprof");
21 var_dump($run_id);

查看运行结果

将xhprof_lib&&xhprof_html相关目录copy到可以访问到的地址
访问 xxx/xhprof_html/index.php?run=$run_id&source=bluefrog 就可经看到你的php代码运行的相关情况
下面是一些参数说明
Function Name 函数名
    Calls 调用次数
    Calls% 调用百分比
    Incl. Wall Time (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
    IWall% 调用的包括子函数所有花费时间的百分比
    Excl. Wall Time (microsec) 函数执行本身花费的时间,不包括子树执行时间,以微秒算(一百万分之一秒)
    EWall% 函数执行本身花费的时间的百分比,不包括子树执行时间
    Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl. Wall Time即为等待cpu的时间
    减Excl. Wall Time即为等待cpu的时间
    ICpu% Incl. CPU(microsecs)的百分比
    Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,以微秒算(一百万分之一秒)。
    ECPU% Excl. CPU(microsec)的百分比
    Incl.MemUse(bytes) 包括子函数执行使用的内存。
    IMemUse% Incl.MemUse(bytes)的百分比
    Excl.MemUse(bytes) 函数执行本身内存,以字节算
    EMemUse% Excl.MemUse(bytes)的百分比
    Incl.PeakMemUse(bytes) Incl.MemUse的峰值
    IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
    Excl.PeakMemUse(bytes) Excl.MemUse的峰值
    EPeakMemUse% EMemUse% 峰值百分比

注: 需要使用ctype这个扩展

相关文章
    暂无相关文章
本文由 jack 发布于 2155天 22小时 1分钟前,目前已有 2532 人浏览
欢迎大家转载分享,请注明来源及链接;商业媒体转载请获得授权,谢谢合作!
 

添加评论