PHP7环境下如何安装并高效运用xhprof进行代码性能剖析?

2026-04-03 12:481阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1304个文字,预计阅读时间需要6分钟。

PHP7环境下如何安装并高效运用xhprof进行代码性能剖析?

本章节为大家介绍在PHP7环境下安装并使用xhprof性能分析工具的方法。xhprof是一款功能强大的性能分析工具,可以帮助开发者深入分析PHP应用的性能瓶颈。

安装步骤

1. 下载xhprof:从GitHub仓库(https://github.com/longxinH)下载xhprof。

2.编译安装:解压下载的文件,进入目录,执行`./configure`和`make`命令进行编译。

3.配置PHP:在PHP配置文件(通常是php.ini)中启用xhprof扩展。添加以下行:

extension=xhprof.so

4.重启PHP:重启Apache或Nginx服务器,使配置生效。

使用方法

1. 启动xhprof:在浏览器中访问`http://yourdomain.com/xhprof/xhprof.php`,这将显示xhprof的主界面。

2.运行代码:在需要分析的代码前添加以下代码:

php xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 在代码执行完毕后添加: php xhprof_disable();

3.查看报告:返回xhprof主界面,点击Show Profile查看性能分析报告。

参考价值

xhprof提供了详细的性能数据,包括函数调用次数、内存使用情况等,有助于开发者快速定位性能瓶颈。

需要的朋友

如果您需要进一步的帮助或有任何疑问,欢迎联系我。希望对大家有所帮助!

本篇文章给大家介绍一下PHP7下安装并使用xhprof性能分析工具的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

该 xhprof 版本是从 github.com/longxinH/xhprof 获取

git clone github.com/longxinH/xhprof安装 xhprof

cd xhprof/extension/ phpize ./configure make make install

然后在/etc/php.ini中根据情况加入

extension=xhprof.so

执行

php -m | grep xhprof

可以看见输出,说明php扩展安装成功,然后重启Apache或者php-fpm

运行

可以直接运行从github上clone下来的文件里面example目录下的那个例子

输出如下

Array ( [main()] => Array ( [ct] => 1 [wt] => 9 ) ) --------------- Assuming you have set up the <xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo ---------------

然后复制index.php后面的?run=592567308784c&source=xhprof_foo

访问

xhprof_html/index.php?run=592567308784c&source=xhprof_foo

可看见输出

点击中间的 View Full Callgraph 即可看见性能分析图片

报错

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。

//解决方案 yum install graphviz随机应变

比如想测试自己的项目,例如一款框架的性能分析。

复制xhprof_lib/utils/下的两个文件

xhprof_lib.php和xhprof_runs.php到入口文件同级目录,然后在入口文件起始位置添加

// start profiling xhprof_enable();

结束位置添加

// stop profiler $xhprof_data = xhprof_disable(); // display raw xhprof data for the profiler run print_r($xhprof_data); include_once "xhprof_lib.php"; include_once "xhprof_runs.php"; // save raw data for this profiler run using default // implementation of iXHProfRuns. $xhprof_runs = new XHProfRuns_Default(); // save the run under a namespace "xhprof_foo" $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); echo "---------------\n". "Assuming you have set up the <xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n". "---------------\n";

即可得到如上所示的那个url,然后再次去访问

***/xhprof_html/index.php?run=*****&source=xhprof_foo

得到如下所示页面

查看图片

图中红色的部分为性能比较低,耗时比较长的部分,我们可以根据根据哪些函数被标记为红色对系统的代码进行优化

补充
  • Function Name:方法名称。

  • Calls:方法被调用的次数。

  • Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

  • Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

  • IWall%:方法执行花费的时间百分比。

  • Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

  • EWall%:方法本身执行花费的时间百分比。

    PHP7环境下如何安装并高效运用xhprof进行代码性能剖析?

  • Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

  • ICpu%:方法执行花费的CPU时间百分比。

  • Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

  • ECPU%:方法本身执行花费的CPU时间百分比。

  • Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

  • IMemUse%:方法执行占用的内存百分比。

  • Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

  • EMemUse%:方法本身执行占用的内存百分比。

  • Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

  • IPeakMemUse%:Incl.MemUse峰值百分比。

  • Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

  • EPeakMemUse%:Excl.MemUse峰值百分比。

推荐学习:php视频教程

本文共计1304个文字,预计阅读时间需要6分钟。

PHP7环境下如何安装并高效运用xhprof进行代码性能剖析?

本章节为大家介绍在PHP7环境下安装并使用xhprof性能分析工具的方法。xhprof是一款功能强大的性能分析工具,可以帮助开发者深入分析PHP应用的性能瓶颈。

安装步骤

1. 下载xhprof:从GitHub仓库(https://github.com/longxinH)下载xhprof。

2.编译安装:解压下载的文件,进入目录,执行`./configure`和`make`命令进行编译。

3.配置PHP:在PHP配置文件(通常是php.ini)中启用xhprof扩展。添加以下行:

extension=xhprof.so

4.重启PHP:重启Apache或Nginx服务器,使配置生效。

使用方法

1. 启动xhprof:在浏览器中访问`http://yourdomain.com/xhprof/xhprof.php`,这将显示xhprof的主界面。

2.运行代码:在需要分析的代码前添加以下代码:

php xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 在代码执行完毕后添加: php xhprof_disable();

3.查看报告:返回xhprof主界面,点击Show Profile查看性能分析报告。

参考价值

xhprof提供了详细的性能数据,包括函数调用次数、内存使用情况等,有助于开发者快速定位性能瓶颈。

需要的朋友

如果您需要进一步的帮助或有任何疑问,欢迎联系我。希望对大家有所帮助!

本篇文章给大家介绍一下PHP7下安装并使用xhprof性能分析工具的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

该 xhprof 版本是从 github.com/longxinH/xhprof 获取

git clone github.com/longxinH/xhprof安装 xhprof

cd xhprof/extension/ phpize ./configure make make install

然后在/etc/php.ini中根据情况加入

extension=xhprof.so

执行

php -m | grep xhprof

可以看见输出,说明php扩展安装成功,然后重启Apache或者php-fpm

运行

可以直接运行从github上clone下来的文件里面example目录下的那个例子

输出如下

Array ( [main()] => Array ( [ct] => 1 [wt] => 9 ) ) --------------- Assuming you have set up the <xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo ---------------

然后复制index.php后面的?run=592567308784c&source=xhprof_foo

访问

xhprof_html/index.php?run=592567308784c&source=xhprof_foo

可看见输出

点击中间的 View Full Callgraph 即可看见性能分析图片

报错

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。

//解决方案 yum install graphviz随机应变

比如想测试自己的项目,例如一款框架的性能分析。

复制xhprof_lib/utils/下的两个文件

xhprof_lib.php和xhprof_runs.php到入口文件同级目录,然后在入口文件起始位置添加

// start profiling xhprof_enable();

结束位置添加

// stop profiler $xhprof_data = xhprof_disable(); // display raw xhprof data for the profiler run print_r($xhprof_data); include_once "xhprof_lib.php"; include_once "xhprof_runs.php"; // save raw data for this profiler run using default // implementation of iXHProfRuns. $xhprof_runs = new XHProfRuns_Default(); // save the run under a namespace "xhprof_foo" $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); echo "---------------\n". "Assuming you have set up the <xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n". "---------------\n";

即可得到如上所示的那个url,然后再次去访问

***/xhprof_html/index.php?run=*****&source=xhprof_foo

得到如下所示页面

查看图片

图中红色的部分为性能比较低,耗时比较长的部分,我们可以根据根据哪些函数被标记为红色对系统的代码进行优化

补充
  • Function Name:方法名称。

  • Calls:方法被调用的次数。

  • Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

  • Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

  • IWall%:方法执行花费的时间百分比。

  • Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

  • EWall%:方法本身执行花费的时间百分比。

    PHP7环境下如何安装并高效运用xhprof进行代码性能剖析?

  • Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

  • ICpu%:方法执行花费的CPU时间百分比。

  • Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

  • ECPU%:方法本身执行花费的CPU时间百分比。

  • Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

  • IMemUse%:方法执行占用的内存百分比。

  • Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

  • EMemUse%:方法本身执行占用的内存百分比。

  • Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

  • IPeakMemUse%:Incl.MemUse峰值百分比。

  • Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

  • EPeakMemUse%:Excl.MemUse峰值百分比。

推荐学习:php视频教程