xhprof 是fb搞的一个用来分析php程序性能的工具,使用轻巧方便。官方地址:http://mirror.facebook.net/facebook/xhprof/doc.html#installation
1,安装使用:
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
<directory_for_htdocs>
cd extension
phpize
./configure --with-php-config=/usr/local/php/bin/php-confg
make
make install
编辑php.ini:
[xhprof]
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
xhprof.output_dir=<directory_for_storing_xhprof_runs>
注意设置xhprof.output_dir的目录权限
重启服务让修改生效,现在就可以使用XHProf了,不过为了显示效果更炫,最好继续安装Graphviz。
使用phpinfo()确认是否正确安装
安装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
安装完成后,会生成/usr/local/bin/dot文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。
使用phpinfo()确认是否正确安装
使用XHProf:
// start profiling
,开启xhprof功能
xhprof_enable();
// run program
....
// stop profiler
$xhprof_data = xhprof_disable();
//
// Saving the XHProf run
// using the default implementation of iXHProfRuns.
//
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();
// Save the run under a namespace "xhprof_foo".
//
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
//
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
echo "---------------\n".
"Assuming you have set up the http based UI for \n".
"XHProf at some address, you can view run at \n".
"
http://192.168.2.128/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n".
"---------------\n";
如此一来,会在上面设定的xhprof.output_dir目录里生成名字类似49bafaa3a3f66.xhprof_foo的数据文件,可以很方便的通过Web方式浏览效果:
http://192.168.2.128/xhprof_html/index.php?run=49bafaa3a3f66&source=xhprof_foo
目前显示的是表格形式的显示,点击页面上的[View Full Callgraph],就能看到图片了。
2, 结果分析:
主要的
Inclusive Time (或子树时间):包括子函数所有执行时间。
Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
Wall时间:花去了的时间或挂钟时间。
CPU时间:用户耗的时间+内核耗的时间
表单中的
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% 峰值百分比
分享到:
相关推荐
Xhprof是另一个用于PHP性能分析的工具,提供了丰富的性能数据和视图。 4.4.1 Xhprof的优点: 介绍Xhprof的优势和特点。 5. PHP单元测试技术 单元测试是保证代码质量的重要手段。 5.1 PHPUnit: PHPUnit是PHP的单元...
手册会涉及如何使用XHProf、Blackfire.io等工具进行性能剖析,找到瓶颈并优化代码。 9. **错误处理与异常**:讲解PHP的错误处理机制,包括try-catch语句和自定义异常类,以及如何有效地转换错误为异常。 10. **...
5. **性能分析**:讲解如何使用XHProf、Blackfire等工具进行性能剖析,找到代码中的瓶颈并优化。 6. **远程调试**:如何在本地开发环境远程调试部署在服务器上的PHP应用。 7. **代码审查**:强调代码审查的重要性...
PHP性能调试技术章节则关注于如何使用各种性能分析工具来诊断和优化PHP代码。其中,Xdebug是一个广为使用的PHP扩展,用于提供堆栈跟踪、代码覆盖率分析等功能,同时也支持性能分析。手册描述了Xdebug的安装配置过程...
9. **性能分析和优化工具**:Xdebug用于调试,XHProf或Blackfire.io用于性能分析,提供内存和执行时间的详细报告。 10. **测试框架**:PHPUnit是PHP的主要单元测试框架,可能包括测试驱动开发(TDD)和行为驱动开发...
- **概述:** Xhprof 是一个高性能的PHP性能分析器,提供了更详细的性能统计数据。 #### 六、PHP单元测试技术 **5.1 PHPUnit** - **概述:** 是一个常用的PHP单元测试框架,用于编写和运行测试用例。 - **应用...
#### 四、PHP性能调试技术 **4.1 基本时间占用监测** 通过记录函数执行时间来分析性能瓶颈。 ```php $start_time = microtime(true); // 执行操作 $end_time = microtime(true); $execution_time = $end_time - $...
书中强调了性能分析的重要性,推荐使用工具如Xdebug或xhprof进行PHP代码的性能剖析。作者还介绍了一些高级主题,如自动加载(autoloading)和延迟加载(lazy loading),以及如何通过设置错误处理器和关闭函数来捕捉...
12. **性能优化**:介绍ThinkPHP的缓存机制、路由缓存、配置缓存等性能优化策略,以及如何使用XHProf、Blackfire等工具进行性能分析。 13. **安全实践**:涵盖防止SQL注入、XSS攻击、CSRF攻击等网络安全问题,以及...
ltrace还可以配合其他工具使用,比如php-apc或者php-xhprof这样的PHP性能分析扩展。这些扩展工具可以提供更详细的脚本执行信息,包括函数调用次数、内存使用情况和运行时间等。使用这些工具,开发者能够更全面地优化...