使用xdebug2.9.8和wingride/KCacheGrind优化分析php代码性能

来源:赵克立博客 分类: PHP 标签:XDebug发布时间:2018-07-18 14:00:07最后更新:2021-08-26 17:41:42浏览:1544
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2021-08-26 17:41:42
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

优化配置

特别注意,下面是xdebug2.9.8的配置和分析,3.x已经出来了,分析结果可能跟下面不一至


首先在php.ini中开启xdebug扩展并添加下面配置项,以便记录代码运行中的一些日志信息

xdebug.profiler_append = 1
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_name = "callgrind.out.%t-%s"
xdebug.profiler_output_dir ="/var/log/php/xdebug"
xdebug.trace_output_dir ="/var/log/php/xdebug"


xdebug.profiler_enable_trigger = 0

当此设置设为 1 时,您可以使用 XDEBUG_PROFILE GET/POST 参数触发分析器文件的生成,或设置名为 XDEBUG_PROFILE 的 cookie。这会将探查器数据写入定义的目录。为了防止profiler为每个请求生成profile文件,需要将xdebug.profiler_enable设置为0。可以通过xdebug.profiler_enable_trigger_value配置对触发器本身的访问


xdebug.profiler_enable_trigger_value = ""

此设置可用于限制谁可以使用 xdebug.profiler_enable_trigger 中概述的 XDEBUG_PROFILE 功能。当从空字符串的默认值更改时,cookie、GET 或 POST 参数的值需要与具有此设置的共享机密集匹配,以便分析器启动


如果不需要优化性能的话建议把这些配置去掉,不然会占用很多的空间,每打开一个页面都会记录一些东西

2103101615364709936801.png

分析软件

使用下面软件打开进行分析

建议用第一个

kcachegrind

https://sourceforge.net/projects/qcachegrindwin/

2103101615364790896465.png


wincachegrind

https://sourceforge.net/projects/wincachegrind/




微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python