auto-xhprof PHP自动性能测试工具

auto-xhprof 项目地址: https://github.com/smallfish/auto-xhprof

最近需要对一些PHP应用和底层函数进行一些排错和性能方面的分析,不由得想起xhprof这个小强的利器。

当然也可以按照官方的示例来监控应用或者页面的数据,使用起来还是有点不爽。比如想监控所有访问超过2秒的页面性能情况,或者自动打开/关闭分析,请求url、响应时间等。

随手基于xhprof写了一个扩展小工具。

主要思路如下:

通过修改php.ini中的auto_prepend_file可以预加载auto-xhprof.php,自动打开xhprof功能。

;php.ini
auto_prepend_file = '/path/prepend.php'

; <?php
;    include_once '/path/auto-xhprof.php';
; ?>

主要功能点有如下:

图一(列表显示):

图二(部分函数显示):

源码文件说明:

auto-xhprof.php         全局加载文件。
auto-xhprof-config.php  全局配置文件,设置MySQL数据库和参数等。
gearman-worker.php      gearman后台处理worker进程。
web/                    web显示目录,xhprof列表页面和原xhprof展示部分
xhprof_lib/             xhprof库文件。

——— 扩展安装步骤 ———

到这里,基本安装和配置结束了,访问web目录可以看到xhprof列表信息。

另外,如果支持gearman扩展的话,需要在php.ini中启动该扩展,并在auto-xhprof-config.php中配置:

define('__XHPROF_GERAMAN_SERVERS', '127.0.0.1:4730;127.0.0.1:4730'); // gearman 服务器定义

% gearmand -vvv -q libdrizzle --libdrizzle-host=127.0.0.1\
   --libdrizzle-user=root --libdrizzle-password=123456 --libdrizzle-db=gearman\
      --libdrizzle-table=queue --libdrizzle-mysql

% php gearman-worker.php