关于PHP+xdebug分析代码性能瓶颈【PHP教程】

!
也想出现在这里? 联系我们
信息

关于PHP+xdebug分析代码性能瓶颈,第1张

概述关于PHP+xdebug分析代码性能瓶颈

PHP + xdeBUG 分析代码性能瓶颈

通常启用了xdeBUG插件,性能测试输出文件会伴随生成,通常是以cachegrind.out.xxxx 文件存在。

该文件可以通过第三方工具来进行代码性能分析。

但如果本地有多个项目/网站,所有的profile 都输出到一个文件中了,这样并不方便后面进行性能分析。

自定义profile 文件名称

可以通过配置xdeBUG.profiler_output_name 参数来设置输出文件名称,部分参数如下:

符号 含义 配置样例 样例文件名
%c 当前工作目录的crc32校验值 cachegrind.out.%c cachegrind.out.1258863198
%p 当前服务器进程的pID cachegrind.out.%p cachegrind.out.9685
%r 随机数 cachegrind.out.%r cachegrind.out.072db0
%s 脚本文件名(注) cachegrind.out.%s cachegrind.out._home_httpd_HTML_test_xdeBUG_test_PHP
%t Unix时间戳(秒) cachegrind.out.%t cachegrind.out.1179434742
%u Unix时间戳(微秒) cachegrind.out.%u cachegrind.out.1179434749_642382
%H $_SERVER['http_HOST'] cachegrind.out.%H cachegrind.out.localhost
%r $_SERVER['REQUEST_URI'] cachegrind.out.%r cachegrind.out._test_xdeBUG_test_PHP_var=1_var2
%s session_ID (来自$_cookie 如果设置了的话) cachegrind.out.%s cachegrind.out.c70c1ec2375af58f74b390bbdd2a679d
%% %字符 cachegrind.out.%% cachegrind.out.%%

编辑PHP.ini 配置文件:

xdeBUG.profiler_output_name = cachegrind.out.%H

然后重启 PHP server。

在Mac 下,profile 文件存放于/var/tmp/目录中。

性能分析

在Mac 下,有MacCallGrind 和 qcachegrind 可以使用,不过前者是收费,直接通过Apple Store下载,后者是免费。需要手动安装。

安装graphviz,用来Call Graph功能:

$ brew install graphviz

安装 qcachegrind:

$ brew install qcachegrind

安装完成之后,就可以打开 qcachegrind 应用了,图形界面如下:

其他

不过需要注意,开启了profile文件输出之后,如果本地项目多的话,很容易占用磁盘大面积空间,下图是我半年左右没有清理的状态:

可以使用命令进行清理:

$ sudo rm -fr /private/var/tmp/cachegrind.out.*

总结

以上是内存溢出为你收集整理的关于PHP+xdebug分析代码性能瓶颈全部内容,希望文章能够帮你解决关于PHP+xdebug分析代码性能瓶颈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞68 分享
相关推荐
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容