这篇文章主要介绍“PHP中的层次性能分析器的介绍、安装与使用”,在日常操作中,相信很多人在PHP中的层次性能分析器的介绍、安装与使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中的层次性能分析器的介绍、安装与使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在 PHP 中,我们需要进行调试的时候,一般都会使用 memory_get_usage() 看下内存的使用情况。但如果想看当前的脚本 CPU 的占用情况就没有什么现成的函数了。不过,PHP 也为我们提供了一个扩展:XHProf ,这是由 FaceBook 开源的一个扩展,它可以帮我们看到当前脚本运行时的一些性能情况。
XHProf 是一个轻量级的分层性能测量分析器。在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU 计算时间和内存开销。函数性能报告可以由调用者和被调用者终止。在数据搜集阶段 XHProf 通过调用图的循环来检测递归函数,通过赋予唯一的深度名称来避免递归调用的循环。
简单来说,XHProf 就是能为我们收集很多程序运行时的系统状态,并且它自带一套在线图表工具,能够为我们提供详尽的图表信息。
直接在 PECL 下载安装扩展包即可。和其它的扩展安装并没有什么两样,这个扩展一直在更新维护状态中,所以对于 PHP7 版本都是完美支持的。
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
//xhprof_enable( XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
//xhprof_enable( XHPROF_FLAGS_MEMORY);
//xhprof_enable();
for ($i = 0; $i <= 1000; $i++) {
$a = $i * $i;
}
function test_application(){
for ($i = 0; $i <= 1000; $i++) {
$a = $i * $i;
}
}
test_application();
$xhprof_data = xhprof_disable();
print_r($xhprof_data);
// Array
// (
// [main()==>test_application] => Array
// (
// [ct] => 1
// [wt] => 16
// [cpu] => 21
// [mu] => 848
// [pmu] => 0
// )
// [main()] => Array
// (
// [ct] => 1
// [wt] => 115
// [cpu] => 115
// [mu] => 1416
// [pmu] => 0
// )
// )
使用 xhprof_enable() 启用分析器,它的参数是几个常量,大概的意思就是显示 CPU 信息、内存信息等,如果没有参数的话则只会返回 ct 、 wt 这两个参数。
调用 xhprof_disable() 结束分析并返回分析结果,返回值的内容包括 main 主函数的运行情况,也就是我们当前页面测试代码的情况。还有调用的函数 test_application() 函数的性能情况。具体内容为:
没错,就是这么简单的内容。通过两个函数的调用我们就能看到当前脚本程序的运行状态,占用了多少内存、耗费了多少 cpu 时长。当然,更方便的是,它还可以通过 web 页面显示更为详细的信息。
首先,我们需要做一些准备工作。一是要安装一个 graphviz 用于图形绘制,二是修改 php.ini 文件的结果存放目录,三是拷贝源码中的分析器代码并修改一下我们之前的测试代码。
yum install graphviz
CentOS 系统中我们直接使用 yum 就可以安装 graphviz 。然后我们在 php.ini 文件中为 xhprof 指定一下输出目录。
xhprof.output_dir=/tmp
接下来,我们需要将源码文件中的 xhporf_html 目录和 xhporf_lib 目录拷贝出来放到项目文件下。然后修改代码来保存性能分析的结果。
// ..... 上面的代码
$xhprof_data = xhprof_disable();
require 'xhprof_lib/utils/xhprof_lib.php';
require 'xhprof_lib/utils/xhprof_runs.php';
$xhprofRuns = new XHProfRuns_Default();
$runId = $xhprofRuns->save_run($xhprof_data, 'xhprof_test');
echo 'http://192.168.56.102/index.php?run=' . $runId . '&source=xhprof_test';
然后我们需要在 xhporf_html 搭起服务器,在这里我就用简单的 php -S 命令运行起来。
cd xhprof_html/
php -S 0.0.0.0:80
最后用上面输出的链接来访问这个页面,就可以看到相关的信息了。
到此,关于“PHP中的层次性能分析器的介绍、安装与使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。