文档章节

亲自在win7下安装xhprof

webphp
 webphp
发布于 2017/07/26 11:28
字数 1261
阅读 2
收藏 0
最近发现在以往的工作中php项目做的很多。具体的压力测试没有做过,今天感兴趣做一下项目的压力测试,选用Facebook的轻量级调试工具xhprof,和Xdebug相比xhprof更加易用和可控.尤其是生成流程图和调试数据对比的功能很好很强大。但是在网上找了一堆都是在linux服务器上运行的。可以在本地开发的时候有需要用调试的时候不可能一下就搬到linux服务环境之上的,所以就在本地进行按装,先下载适合于win7 上的xhprof的dll文件。 具下载地址: (以下为xhprof的dll文件,根据本地php版本选择以下两种的xhprof的任意一种,以下两种都是win7 32位,如果需要64位的自行在网上查找一下) php_xhprof_0.10.0_PHP_5.3.3_VC6_x86_Thread_Safe具体是支持php5.3.3,正好本地的php环境是wamp的集成环境。 链接: http://pan.baidu.com/s/1sjNoOVF 密码:wu50 xhprof-0.10.3-PHP-5.4-vc9-ts.zip是支持php5.4下载地址如下: 链接: http://pan.baidu.com/s/1ntC7CEX 密码:w1i5 以下为要测试站点的目录下要生成的报告,xhprof_html要放在测试站点的根目录下 下载xhprof_html这个文件放到测试站点的根目录下,下载地址: 链接: http://pan.baidu.com/s/1gdkt8LP 密码:90so 1、解压以后复制到php的安装目录下ext目录,可以看到这个目录下的文件,都是php一些扩展的dll文件,xhprof的原理和这些一样 2、修改php.ini文件,具体要加入以下代码
extension=php_xhprof.dll
[xhprof]
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
xhprof.output_dir="D:/wamp/www/xhprof"#(这个根据自己的方便自行设置,可以自己配置生成的报告的位置)
3、重启所有的服务 4、然后通过运行phpinfo(),查看是否有xhprof,如果有,就标示成功了   5、xhprof_html.zip 这个文件解压到你想测试的网站根目录就好了 现在网站一般使用的是框架,唯一入口这点最好了,直接在index.php里面写就好了
xhprof_enable();//开始
//此部分为框架的程序代码
$xhprof_data = xhprof_disable();//结束,然后写入文件,注意目录
$XHPROF_ROOT = realpath(dirname(__FILE__).'/xhprof');
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_foo");
echo "<a href='http://zhihui.sibo.com/xhprof/xhprof_html/?run=$run_id&source=xhprof_foo'>分析</a>";
//这里的zhihui.sibo.com换成你自己的域名就好了,这是我在本地自己解析的一个站点域名
以下为xhprof的缩写
Inclusive Time 包括子函数所有执行时间。
Exclusive Time/Self Time 函数执行本身花费的时间,不包括子树执行时间。
Wall Time 花去了的时间或挂钟时间。
CPU Time 用户耗的时间+内核耗的时间
Inclusive CPU 包括子函数一起所占用的CPU
Exclusive CPU 函数自身所占用的CPU
可是运行以后老是报错:查找原因为xhprof目录下的config.php的路径有问题,还有就是graphaiz 生成结构图的工具没有安装
<?php
/*
 * Set the absolute paths on your system
 */
define('ERROR_FILE', 'd:/wamp/logs/xhprof_dot_errfile.log');
define('TMP_DIRECTORY', 'd:/wamp/tmp/xhprof/tmp/');
define('DOT_BINARY', 'C:/Program Files/Graphviz2.38/bin/dot.exe');
?>
备注内容:因为xhprof在生成调试信息的时候,要生成一个利用graphviz生成一个结构图,如果本地没有安装graphviz,则要安装graphviz. 百度搜索中输入"graphviz",即可找到该工具的官方网站。 http://www.graphviz.org/ 点击download 点击选中的红色部分 下载成功以后安装 最后附上xhprof的结果说明 表单中的:
列名 描述
Function Name 方法名称。
Calls 方法被调用的次数。
Calls% 方法调用次数在同级方法总数调用次数中所占的百分比。
Incl.Wall Time (microsec) 方法执行花费的时间,包括子方法的执行时间。(单位:微秒)
IWall% 方法执行花费的时间百分比。
Excl. Wall Time (microsec) 方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)
EWall% 方法本身执行花费的时间百分比。
Incl. CPU (microsecs) 方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)
ICpu% 方法执行花费的CPU时间百分比。
Excl. CPU (microsec) 方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)
ECPU% 方法本身执行花费的CPU时间百分比。
Incl.MemUse (bytes) 方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)
IMemUse% 方法执行占用的内存百分比。
Excl.MemUse (bytes) 方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)
EMemUse% 方法本身执行占用的内存百分比。
Incl.PeakMemUse (bytes) Incl.MemUse峰值。(单位:字节)
IPeakMemUse% Incl.MemUse峰值百分比。
Excl.PeakMemUse (bytes) Excl.MemUse峰值。单位:(字节)
EPeakMemUse% Excl.MemUse峰值百分比。
 

© 著作权归作者所有

共有 人打赏支持
webphp
粉丝 1
博文 92
码字总数 92338
作品 0
海淀
程序员
CentOS使用yum安装php性能测试工具xhprof

1.首先我们安装xhprof: yum install xhprof 2.安装好之后,找到xhprof的配置文件xhprof.conf,一般会在/etc/php.d里面,加入这2行: extension=xhprof.soxhprof.outputdir=<directoryforsto...

Surjur
2015/02/03
0
0
centos 下 xhprof 的安装与使用

<directoryforhtdocs> - web可访问的目录,比如/www/xhprof,对应xhprof.***.com #<directoryforstoringxhprofruns> - xhprof数据存放的目录,比如/www/xhprof/xhprof_data,需要有web用户......

Surjur
2014/10/09
0
0
php性能分析工具xhprof

XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记...

xiaoyuan234
07/04
0
0
facebook的php性能分析工具--xhprof

原文链接:http://www.cleey.com/blog/single/id/439.html pecl安装看这里:http://www.cleey.com/blog/single/id/816.html xhprof为facebook的php性能分析工具,xhprof安装,这里我先贴出大...

Cleey
2016/01/04
1K
3
[原创] 在CentOS环境里ThinkPHP框架下如何配置XHProf

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

SunnyGo
2012/05/16
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

解析高可用分布式键值存储 etcd 的原理

这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议、存储两大模块,在最后我们也会简单介绍 etcd 一些具体应用场景。 etcd 的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整...

小刀爱编程
23分钟前
2
0
在ubuntun虚拟机里安装goLang语言编程环境

Go语言是谷歌2009发布的第二款开源编程语言。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 北京时间201...

JerryWang_SAP
24分钟前
6
0
c++builder导出函数export function DLL

__stdcall __export 即可,如: ulong __stdcall __export od_disasm(char *src,ulong srcsize,ulong srcip, t_disasm *disasm,int disasmmode){ return Disasm(src,srcsiz......

simpower
25分钟前
2
0
KDC服务安装及配置

阿伦哥-
28分钟前
2
0
mybatis-plus公共字段操作以及springboot2整合mybatis-plus

1、公共实体 对于User类中有而user表中没有的属性需要加第二个注解@TableField(exist = false),表示排除User类中的属性 所有新增公共字段加注解 并指定 @TableField(value = "corp_code",fi...

glen_xu
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部