php代码执行效率测试工具xhprof安装&使用
来源:互联网 发布:蒙泰打印不追加数据 编辑:程序博客网 时间:2024/06/10 03:00
XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。
以下是记录和总结:
安装xhprof:
wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2
拷贝显示文件到要测试的网站里
cp -r xhprof_html xhprof_lib /www/www.hx.com/xhprof/
cd extension/
/usr/local/webserver/php/bin/phpize
./configure
make && make install
php.ini中添加
extension=xhprof.so
xhprof.output_dir=/www/logs/xhprof
分析日志输出在/www/logs/xhprof目录。
重新加载php配置文件和重启web
/usr/local/webserver/php/sbin/php-fpm reload
/usr/local/webserver/nginx/sbin/nginx -s reload
刷新phpinfo页面,看到输出中有了xhprof信息。
xhprof 0.9.2
CPU num 2
安装graphviz,一个画图工具
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
tar zxf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make && make install
程序试例
头部:
xhprof_enable();
//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数
//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销
$xhprof_on = true;
我觉得用xhprof_enable();就够用了,只统计运行时间(Wall Time)。
生产环境可使用:
if (mt_rand(1, 10000) == 1) {
xhprof_enable();
$xhprof_on = true;
}
尾部:
if($xhprof_on){
$xhprof_data = xhprof_disable();
$xhprof_root = '/www/www.hx.com/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, "hx");
echo '<a href="http://192.168.1.158:858/xhprof/xhprof_html/index.php?run='.$run_id.'&source=hx" target="_blank">统计</a>';
}
运行程序,底部出现统计字样,点过去就可以看到性能分析了。按运行时间排序,很容易找出化时间最长的函数。
点[View Full Callgraph]图形化显示,最大的性能问题会用红色标出,其次是黄色,很明显。
名词:
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% 峰值百分比
- php代码执行效率测试工具xhprof安装&使用
- PHP性能测试工具xhprof的安装和使用
- PHP性能测试工具XHProf使用详解
- php 性能测试工具 xhprof使用
- php调试工具---xhprof安装和使用
- facebook工具xhprof的安装与使用-分析php执行性能
- facebook工具xhprof的安装与使用-分析php执行性能
- PHP性能测试工具xhprof
- php性能测试工具--xhprof
- php性能测试工具--xhprof
- PHP性能测试工具xhprof
- PHP - xhprof 安装使用
- php性能分析工具工具xhprof的安装与使用
- 在生产环境中使用php性能测试工具xhprof
- 在生产环境中使用php性能测试工具xhprof
- 在生产环境中使用 php 性能测试工具 xhprof
- 在生产环境中使用 php 性能测试工具 xhprof
- 在生产环境中使用php性能测试工具xhprof
- TCP/IP详解学习笔记(2)-数据链路层
- sqlite3函数使用说明1
- sqlite3函数使用说明2
- Eclipse开发调试ARM裸机程序
- 学习笔记补充
- php代码执行效率测试工具xhprof安装&使用
- Hibernate工作原理
- Java数据结构(栈篇)
- MFC的视图View
- JAVA拷问HashMap和HashTable
- 重写Object中的hashCode方法
- TCP/IP详解之IP协议ARP协议和RARP协议
- SQL Server 2008 修改表结构后不能保存的问题
- 静心营