笔记-xhprof-20141127

关于 XHProfXHProf 是 FaceBook 开发的一个函数级别的 PHP 分层分析器。数据收集部分是一个基于 C 的 PHP 扩展,分析报告是一系列基于 PHP 的 HTML 导航页面。XHProf 能统计每个函数的调用次数、内存使用、CPU占用等多项重要的数据。并且 XHProf 还能比较两个统计样本,或从多个数据样本中汇总结果。XHProf 是分析 PHP 程序执行效率的利器,能让我们得到更底层的的分析数据。安装 XHProf安装之前这里说下我把第三方编译的程序都放在根目录下的 opt 目录下了, 下面用 wget 下载程序之前先进入cd /opt下面的步骤,应该在Linux / Unix环境下进行命令令安装

wget http://pecl.php.net/get/xhprof-0.9.2.tgztar zxvf xhprof-0.9.2.tgzcd xhprof-0.9.2cp -r xhprof_html xhprof_lib /apps/dat/web/working/xhprof.ofwho.comcd extension# 执行以下命令需要root权限1原因是xhprof绘制的是png图,graphviz-2.24.0不支持。绘图的dot拓展没装成功, 不支持PNG。解决办法1. 编译安装 libpngwget http://sourceforge.net/projects/libpng/files/libpng15/1.5.13/libpng-1.5.13.tar.gz./configuremakemake install 2. 重装 graphviz./configure –with-png=yes 完成之后你就可以再去看一看View啦!使用 XHProf使用 XHProf 非常简单,我们只需要修改少许代码即可实现。例如,我们需要分析代码执行时关于 CPU 和内存的数据。xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);// Test Code Start…………// Test Code End$xhprofData = xhprof_disable();include_once "/home/wwwroot/xhprof.ofwho.com/xhprof_lib/utils/xhprof_lib.php";</data/ecos.cn替换成你的webroot目录>include_once "/home/wwwroot/xhprof.ofwho.com/xhprof_lib/utils/xhprof_runs.php";</data/ecos.cn替换成你的webroot目录$xhprofRuns = new XHProfRuns_Default();$run_id = $xhprofRuns->save_run($xhprofData, "xh");echo '<a target="_blank" href="http://xhprof.ofwho.com/xhprof_html/index.php?run=' . $run_id . '&source=xh">统计</a>'1 这样,当我们运行程序之后,会在 php.ini中设置的xhprof.output_dir的地址中生成分析数据文件。文件名类似于 4b4c239a86593.xh ,我们可以通过改变 save_run 的参数,来改变文件后缀。同时在页面最下方会有一个“统计”的链接,点击就能查看分析数据。由于分析可能会影响响应速度,通常我们会加上一个随机数,随机取样,而不是分析所有用户请求的执行过程。1$randKey = mt_rand(1, 10000);if ($randKey == 1){xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);}// Test Code Start//…………// Test Code Endif ($randKey == 1){$xhprofData = xhprof_disable();include_once "/home/wwwroot/xhprof.ofwho.com/xhprof_lib/utils/xhprof_lib.php";</data/ecos.cn替换成你的webroot目录>include_once "/home/wwwroot/xhprof.ofwho.com/xhprof_lib/utils/xhprof_runs.php";</data/ecos.cn替换成你的webroot目录>$xhprofRuns = new XHProfRuns_Default();$run_id = $xhprofRuns->save_run($xhprofData, "xh");echo '<a target="_blank" href="http://xhprof.ofwho.com/xhprof_html/index.php?run=' . $run_id . '&source=xh">统计</a>'}

查看 XHProf 分析数据例如,域名是 xhprof.ofwho.com,现在我们就可以通过 web 来查看详细的分析数据了。1. 查看单个报告。# 我们想要查看 4b4c239a86593.xh 这个报告的详细信息,查看链接如下:http:// xhprof.ofwho.com/xhprof_html/index.php?run=4b4c239a86593&source=xh2. 比较两个报告。# 我们想比较 4b4c239a86593.xh 和 4b4c2645794f0.xh 两个报告,查看链接如下:http:// xhprof.ofwho.com/xhprof_html/index.php?run1=4b4c239a86593&run2=4b4c2645794f0&source=xh我们可以看到精确到函数级的分析数据,包括调用次数、CPU、内存等,还可以不断的向下跟踪。相信如此详细的数据,将会给程序优化工作,带来巨大的帮助和便利。参数说明Inclusive Time 包括子函数所有执行时间。Exclusive Time/Self Time 函数执行本身花费的时间,不包括子树执行时间。Wall Time 花去了的时间或挂钟时间。CPU Time 用户耗的时间+内核耗的时间Inclusive CPU 包括子函数一起所占用的CPU Exclusive CPU 函数自身所占用的CPU

笔记-xhprof-20141127

相关文章:

你感兴趣的文章:

标签云: