时间:2021-07-01 10:21:17 帮助过:25人阅读
XHProf 是 FaceBook 开发的一个函数级别的 PHP 分层分析器。
数据收集部分是一个基于 C 的 PHP 扩展,分析报告是一系列基于 PHP 的 HTML 导航页面。
XHProf 能统计每个函数的调用次数、内存使用、CPU占用等多项重要的数据。
并且 XHProf 还能比较两个统计样本,或从多个数据样本中汇总结果。
XHProf 是分析 PHP 程序执行效率的利器,能让我们得到更底层的的分析数据。
XHProf 目前的最新版本是 0.92,你可以从它的主页(http://pecl.php.com/package/xhprof)下载它的最新版本。
例如,我的 Web 目录是 /data/scutephp.com,那么我可以通过下面的命令来安装 XHProf 。
查看源代码
wget http://pecl.php.com/get/xhprof-0.9.2.tgztar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2
cp -r xhprof_html xhprof_lib /data/scutephp.com/
cd extension
phpize
./configure
make
make install
当然,我们还需要修改 php.ini 来确保 XHProf 的正常运行。
我们需要先建立一个目录用来存储分析数据文件,例如 /data/scutephp.com/xhprof/。
查看源代码
[xhprof]
extension=xhprof.so
xhprof.output_dir=/data/scutephp.com/xhprof/
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
// Test Code Start
…………
// Test Code End
$xhprofData = xhprof_disable();
include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_lib.php";
include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_runs.php";
$xhprofRuns = new XHProfRuns_Default();
$xhprofRuns->save_run($xhprofData, "xhprof");
$randKey = mt_rand(1, 10000);
if ($randKey == 1)
{
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}
// Test Code Start
…………
// Test Code End
if ($randKey == 1)
{
$xhprofData = xhprof_disable();
include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_lib.php";
include_once "/data/scutephp.com/xhprof_lib/utils/xhprof_runs.php";
$xhprofRuns = new XHProfRuns_Default();
$xhprofRuns->save_run($xhprofData, "xhprof");
}