使用xdebug2.9.8和wingride/KCacheGrind优化分析php代码性能
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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 参数的值需要与具有此设置的共享机密集匹配,以便分析器启动
如果不需要优化性能的话建议把这些配置去掉,不然会占用很多的空间,每打开一个页面都会记录一些东西
分析软件
使用下面软件打开进行分析
建议用第一个
kcachegrind
https://sourceforge.net/projects/qcachegrindwin/
wincachegrind
https://sourceforge.net/projects/wincachegrind/