PHP性能测试工具xhprof安装与使用方法详解


Posted in PHP onApril 29, 2018

本文实例分析了PHP性能测试工具xhprof安装与使用方法。分享给大家供大家参考,具体如下:

xhprof概述:

XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面( PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。

安装与使用:

最近要做网站的性能对比,于是就找一款性能测试工作来玩玩,工具很多,但相比之前还是觉得xhprof的安装和使用相对来说简单点,数据分析也都还可以,下面就说说它的安装和使用。。。

下载xhprof和graphviz

xhprof的话,直接去php官网就可以下载,为了方便可以戳一下 这里

graphviz的话也要下载,主要是显示xhprof性能结果的图形报表,戳这里 这里

编译安装xhprof

cd xhprof-0.9.4/xhprof-0.9.4/extension/
phpize
./configure
make
sudo make install

将生成的xhprof.so文件加到php.ini文件中,然后重启apache了

...
#这里要使用相对路径加载的话首先要看一下extension_dir配置的路径,或者直接写上`.so`文件的绝对能够路径即可。。。
extension=xhprof.so
...
sudo apachectl restart
##测试扩展是否安装成功,有如下输出则ok
php --ri xhprof
...
 xhprof
 xhprof => 0.9.2
 CPU num => 4
...

安装graphviz

cd graphviz-2.38.0/
#后面参数是要确保安装了libphp才行哦【没安装的 brew install linpng 就可】
./configure --with-png=yes
make
sudo make install

测试一下了

在之前下载的xhprof文件夹里面,找到xhprof_html,xhprof_lib、sample三个文件夹,那这三个文件夹放到你可以访问到得地方去,然后通过连接先访问以下http://xxxx/sample/sample.php,在访问以下http://xxxx/xhprof_html/,就会看到有一条记录,点击后就可以看到分析结果页面,通过点击 View Full CallGraph链接到图形报表的页面。

如何使用

假设你现在要看看看自己做的一个网站的首页性能数据,那么你要找到这个网站的首页入口文件,在核心文件加载之前和之后分别加上xhprof的性能测试代码

#开启,具体参数说明可以查看官方文档
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
#核心文件的执行
...
require 'index.php'
...
#关闭
$xhprof_data = xhprof_disable();
#这里的路径根据自己的站点来配置
$XHPROF_ROOT = realpath(dirname(__FILE__) .'/');
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");
#这里打印出本次测试的id,方便到报表列表页面【http://xxxx/xhprof_html/】去通过对应的id找到对应的结果
var_dump($run_id);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
echo, print, printf 和 sprintf 区别
Dec 06 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 PHP
php学习笔记之面向对象编程
Dec 29 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
php输出xml属性的方法
Mar 19 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
php 原生分页
Apr 01 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 #PHP
PHP实现转盘抽奖算法分享
Apr 15 #PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 #PHP
详解php与ethereum客户端交互
Apr 28 #PHP
360搜索引擎自动收录php改写方案
Apr 28 #PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 #PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 #PHP
You might like
分享一下贝贝成长进度的php代码
2012/09/14 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JS 统计时间
2021/03/09 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python五子棋游戏的设计与实现
2019/06/18 Python
wxPython多个窗口的基本结构
2019/11/19 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
财务部经理岗位职责
2014/02/03 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
公司晚会主持词
2014/03/22 职场文书
党员干部一句话承诺
2014/05/30 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫