xhprof 安装与使用
xhprof 是一款Facebook工程师开发和维护的一款PHP性能分析、调试工具,相较于xdebug要更轻量,更节省资源,强烈推荐大家使用。
1、安装流程
可以使用pecl安装、源码编译,如果网络状况支持pecl安装就用pecl安装吧,这是最简便的安装方法。
(1) 通过pecl安装
pecl install xhprof
结果:
[root@iZ2890x6zisZ ~]# pecl install xhprof
Failed to download pecl/xhprof within preferred state "stable", latest release is version 0.9.4, stability "beta", use "channel://pecl.php.net/xhprof-0.9.4" to install
install failed
[root@iZ2890x6zisZ ~]#
由于xhprof没有稳定版,需要使用“pecl install channel://pecl.php.net/xhprof-0.9.4”安装。
pecl install channel://pecl.php.net/xhprof-0.9.4
安装成功,将以下内容追加到php.ini,重启Apache或者php-fpm(强调是php-fpm而不是nginx)。
extension=xhprof.soxhprof.output_dir="/tmp/xhprof"
(2) 源码编译安装
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension
phpize
./configure --enable-xhprof
make
make test
sudo make install
安装成功后也需要追加以下内容到php.ini中,重启Apache或者php-fpm(强调是php-fpm而不是nginx)。
extension=xhprof.soxhprof.output_dir="/tmp/xhprof"
2.使用过程
如果通过pecl安装的话,还得下载http://pecl.php.net/get/xhprof-0.9.4.tgz,解压后将xhprof_lib和xhprof_html放到项目目录下。
建立个test.php,内容如下
<?php
// cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
// 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);//要测试的php代码$data = xhprof_disable(); //返回运行数据// xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php"; $objXhprofRun = new XHProfRuns_Default(); // 第一个参数j是xhprof_disable()函数返回的运行信息
// 第二个参数是自定义的命名空间字符串(任意字符串),
// 返回运行ID,用这个ID查看相关的运行结果
$run_id = $objXhprofRun->save_run($data, "xhprof");
var_dump($run_id);
然后访问test.php后复制run_id然后
访问 xxx/xhprof_html/index.php?run=$run_id&source=xhprof 就可经看到你的php代码运行的相关情况
3.进一步了解和使用
通过在需要调试的代码间使用xhprof_enable和xhprof_disable就能获取性能分析的数据。但不够方便也不够灵活。随后看到有博主通过建立head.php和foot.php,然后在相应位置include进去;内容如下:
//head.php
<?php
if(extension_loaded('xhprof')){//载入下载的XHPROF包中的2个文件夹include_once 'xhprof_lib/utils/xhprof_lib.php';include_once 'xhprof_lib/utils/xhprof_runs.php';xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}
//foot.php
<?php
if(extension_loaded('xhprof')){$ns = 'myXhprof';//关闭profiler$xhprofData = xhprof_disable();//实例化类$xhprofRuns = new XHProfRuns_Default();$runId = $xhprofRuns->save_run($xhprofData, $ns);//前端展示库的URL$url = 'http://localhost/xhprof_html/index.php';$url .= '?run=%s&source=%s';//变量替换$url = sprintf($url, $runId, $ns);//输入URLecho '<a href="'.$url.'" target="_blank">查看结果</a>';
}
在使用过程中包含即可,如下:
//index.php
<?php
include_once 'head.php';
echo 'Hello World';
include_once 'foot.php';
技巧:如果有大量的文件,这样处理还不够方便,我们可以在php.ini中添加以下配置:
auto_prepend_file = /var/www/head.php auto_append_file = /var/www/foot.php
或者在.htaccess中添加以下配置:
php_value auto_prepend_file = /var/www/head.php php_value auto_append_file = /var/www/foot.php
Tips:点击[View Full Callgraph]查看图片的时候报错:failed to execute cmd:" dot -Tpng". stderr:`sh: dot:command not found`。
原因:原因:未安装图形化工具Graphviz
centos :
yum install graphviz
unbutu:
apt-get install graphviz
在yii、thinkphp中使用xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);报502错误。应该修改为以下配置。
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
名词解释:
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% 峰值百分比
中文官网:http://www.xhprof.com/index.php
xhprof 安装与使用相关推荐
- XHProf安装使用笔记
XHProf安装使用笔记 from: http://www.sourcejoy.com/php_dev/xhprof_install_and_usage.html libpng: 先安装... gra ...
- php性能测试下载,PHP性能测试工具xhprof安装与使用方法详解
本文实例分析了PHP性能测试工具xhprof安装与使用方法.分享给大家供大家参考,具体如下: xhprof概述: XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞 ...
- php性能分析工具XHProf安装配置使用教程(linux精华版)
XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...
- linux系统安装xhprof,LNMP部署laravel与xhprof安装使用
整个过程部署laravel与xhprof安装 前提成功安装了LNMP集成环境 (lnmp.org 即可快速安装),保证network正常运行 首先配置laravel的运行环境 1.上传代码到/home ...
- xhprof安装使用【转】
编译安装 wget http://pecl.php.net/get/xhprof-0.9.3.tgztar zxf xhprof-0.9.2.tgzcd xhprof-0.9.2/extension/ ...
- xhprof 安装使用(windows linux混版)
1.安装扩展 windows下把 xhprof.dll 放到extensions目录下 修改配置文件 [xhprof] extension=xhprof.so; ; directory used by ...
- xhprof安装和使用方法(linux版本)
不对xhprof做介绍,我相信能搜到这篇文章的你一定已经知道了xhprof是干什么的. 安装很简单,先去github上把源代码拉下来,地址在这儿: git@github.com:facebook/xh ...
- xhprof安装和使用
2010年的时候有做过相关的东西,为ECOS框架写了一个相关的APP应用,前段时候要用xhprof来测试一下ECAE上的php的运行效率又重新要安装xhprof 本日志记录下相关的过程,以便以后再次使 ...
- xhprof 安装使用
1.安装扩展 windows下把 xhprof.dll 放到extensions目录下 修改配置文件 [xhprof] extension=xhprof.so; ; directory used by ...
最新文章
- 黄冈师范计算机考研,2019年黄冈师范学院计算机基础复试自命题考试大纲
- 跨域解决方案之CORS
- android 声音,同时播放声音Android
- 企业安全建设之浅谈数据防泄露
- NFL discussion调研
- 使用Degraph管理软件包依赖关系
- 图论测试题(一)第一题:longest
- 父类对象由子类实例化【转载】
- HTML5手机开发——滚动和惯性缓动
- 部署Hadoop2.0高性能集群
- Win10+caffe+CUDA9.1+vs2013+Matlab2018b+GPU环境,跑通faster_rcnn-master
- 大数据技术原理与应用----大数据概述
- k8s集群重新将master节点加入集群
- Citrix Receiver卸载方法
- 设计模式之美总结(创建型篇)
- 输入学生学号、成绩,并排序
- [CTF]2021长安战疫 WP
- 搭建umi框架时出现Error: Error: Plugin umi-plugin-react can't be resolved
- Elasticsearch实践(二)在Springboot微服务中集成搜索服务
- .NET开源工作流RoadFlow-表单设计-保存与发布