xhprof安装和使用

2018/03/06 14:55
阅读数 52

安装

#####1. 下载 根据自己PHP版本下载,phpinfo()查看自己是TS/NTS VC9/VC11下载对应的版本,地址[http://windows.php.net/downloads/pecl/releases/xhprof/0.10.6/] #####2. 解压扩展 php_xhprof.dll 解压到php安装目录的ext里 #####3. 配置扩展 配置php.ini文件 extension=php_xhprof.dll; 调试信息的保存路径(该路径为调试文件生成和web工具读取路径 xhprof.output_dir= "D:/phpStudy/WWW/xhprof_log"

重启APACHE,查看是否安装成功。 #####4. 下载web工具 下载地址[https://github.com/facebook/xhprof]

使用

将xhprof使用到实际项目中,可以根据sample.php适当修改

            //开始监测,增添CPU数据,内存数据
            xhprof_enable(XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
            $result = $this->resourceStockModel->specifyVender($param);

            //停止监测,并将监测结果保存到xhprof_data里面,此结果是一个多维数组
            $xhprof_data = xhprof_disable();

            //输出监测结果
//            print_r($xhprof_data);

            //得到xprof的根目录,通过根目录引入xhprof_lib.php和xhprof_runs.php这两个文件
            $XHPROF_ROOT = 'D:\phpStudy\WWW\xhprof';
            include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
            include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

            //得到一个XHProfRuns_Default对象,其save_run方法可以将监测结果写入到一个日志文件中,然后返回日志文件名的前面一串ID
            $xhprof_runs = new XHProfRuns_Default();
            $run_id = $xhprof_runs->save_run($xhprof_data, "test_xhprof");

            //输出一个链接,指向解析run_id后的页面
//            echo '<br>' . '<a href="/xhprof/xhprof_html/index.php?run='.$run_id.'&source=test_xhprof" target="_blank">result</a>';

附录

  • 红色的矩形部分就是性能开销大,需要优化的函数,
  • 白色的矩形部分就是性能开销正常,不需要优化的函数,
  • 黄色的矩形部分相对于白色矩形稍微有一些性能开销,但是没有红色矩形那么大,也就是性能开销在白色矩形和红色矩形之间
名称 含义
FunctionName 调用的函数名
Calls/Calls % 函数的调用次数,以及百分比。可以检查调用次数高的函数是否有必要。
Incl. Wall Time (microsec) 函数运行时间(包括子函数)
Excl. Wall Time(microsec) 函数运行时间(不包括子函数),这里可以倒叙,优化消耗时间最高的函数
Incl. CPU(microsecs) 函数运行CPU(包括子函数)
Excl. CPU(microsecs) 函数运行CPU(不包括子函数 )
Incl.MemUse(bytes) 函数运行消耗内存(包括子函数)
Excl.MemUse(bytes) 函数运行消耗内存(不包括子函数)
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部