网站性能检测工具 -xhprof
2016-02-25 01:16
411 查看
首先来说xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。
1.安装
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4/extension/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
(注意上买呢的php-config的具体位置请根据自己服务器的情况而定,如果不确定可以使用 which php-config来查看)
2.修改php.ini的配置文件
xtension=xhprof.so
xhprof.outout_dir=/var/tmp/xhprof
3. 图形方式显示配置
如果需要在页面显示,那也很简单,xhprof下面有一个xhprof_html的文件夹,你需要让这个文件夹能够让你的浏览器通过http 服务访问到。我就放在/home/www里面了,这样的话我访问它的路径就是:
http://www.local.com/xhprof_html/index.php
(如果无法显示请检查index.php 中 $GLOBALS['XHPROF_LIB_ROOT'] 的路径配置)
测试代码如下:
参数说明:
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://jingyan.baidu.com/article/a948d651646e8e0a2dcd2e36.html http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241.html
1.安装
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4/extension/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
(注意上买呢的php-config的具体位置请根据自己服务器的情况而定,如果不确定可以使用 which php-config来查看)
2.修改php.ini的配置文件
xtension=xhprof.so
xhprof.outout_dir=/var/tmp/xhprof
3. 图形方式显示配置
如果需要在页面显示,那也很简单,xhprof下面有一个xhprof_html的文件夹,你需要让这个文件夹能够让你的浏览器通过http 服务访问到。我就放在/home/www里面了,这样的话我访问它的路径就是:
http://www.local.com/xhprof_html/index.php
(如果无法显示请检查index.php 中 $GLOBALS['XHPROF_LIB_ROOT'] 的路径配置)
测试代码如下:
#!/usr/bin/php xhprof_enable(XHPROF_FLAGS_CPU+XHPROF_FLAGS_MEMORY);//加上这个参数可以使得xhprof显示cpu和内存相关的数据。 foo();//把要测量的函数用xhprof_enable和xhprof_disable包围起来。 $data = xhprof_disable(); //得到统计数据之后,以下的工作就是为页面显示做准备。 $xhprof_root = "/home/xhprof";//这里填写的就是你的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, "test");//第二个参数在接下来的地方作为命名空间一样的概念来使用 echo '<a href="/xhprof_html/index.php?run='.$run_id.'&source=test" target="_blank">惦记我查看哈哈哈。。。</a>'; /************************** 访问<xhprof-ui-address>/index.php?run=$run_id&source=test就能够看到一个统计列表了。 1. <xhprof-ui-address>其实就是http://localhost/xhprof_html 2. 你会在/tmp里面找到一个类似这样的文件:50f7ed6689205.test.xhprof,第一个部分就是run_id,当然,程序里面的$run_id跟这个是一样的。 第二个部分的test就是你在save_run里面的第二个参数,第三个部分就是文件后缀不用去管 3. 例子中,要看到统计列表需要访问的地址就是http://localhost/xhpro_html/index.php?run=50f7ed6689205&source=test **************************/ function foo(){ phpinfo(); }
参数说明:
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://jingyan.baidu.com/article/a948d651646e8e0a2dcd2e36.html http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241.html
相关文章推荐
- mvc架构的理解
- 开发者必备的网站-你都收藏了么?
- 软件行业里常说的“架构”,究竟是什么东西?
- 企业网站更新时应该注意些什么
- VS2012发布网站详细步骤,同样适合vs2013,亲身试过
- LAMP架构搭建与优化(3.3-3.5)
- 新项目的架构(杂记)
- 大型分布式网站架构技术总结
- 系统架构
- Kubernetes基本术语与架构
- java(17)--三层架构示意图
- 淘宝网图片存储系统架构
- android学习网站
- 网站就必须用响应式布局吗?MVC视图展现模式之移动布局
- 架构高性能海量图片服务器的技术要素
- B/S网站中IE6兼容问题
- Java集群优化——dubbo+zookeeper构建高可用分布式集群
- activiti学习资料(架构描述)
- perl 爬取某理财网站产品信息
- 大流量网站该如何配置优化?服务器、静态化、数据库优化、负载均衡应多管齐下