php+xdebug+qcachegrind(mac)性能分析

一、xdebug扩展安装
网上很多类似的教程,这里不在详细描述,主要贴下我的xdebug相关配置供大家参考:

zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
zend_debugger.httpd_uid=-1
xdebug.trace_format = 2
xdebug.auto_trace = on
xdebug.auto_profile = on ;打开性能分析
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = 1
xdebug.trace_output_dir = /tmp
xdebug.profiler_output_dir=/tmp/xdebug ;性能分析生成的文件目录
xdebug.trace_output_name = trace.%c.%p
xdebug.show_exception_trace = On ;开启异常跟踪
xdebug.show_local_vars = 0
 
xdebug.profiler_output_name=cachegrind.out.%s
xdebug.dump.GET = *
xdebug.dump.POST = *
xdebug.dump.COOKIE = *
xdebug.dump.SESSION = *
xdebug.var_display_max_data = 4056
xdebug.var_display_max_depth = 5
  
xdebug.remote_enable=on      
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9010
xdebug.remote_autostart=1

二、安装qcachegrind
1、刷新网页的时候,会在我配置的xdebug.profiler_output_dir目录/tmp/xdebug下生成性能分析文件,用来分析程序性能,下图是我生成的性能分析文件

php+xdebug+qcachegrind(mac)性能分析

2、打开具体的性能文件单独查看,发现可读性很差,这时就需要qcachegrind这个工具,将生成的性能分析文件用此工具打开就能很好的查看了。

性能分析文件直接打开效果:

php+xdebug+qcachegrind(mac)性能分析

使用qcachegrind工具打开后效果:

php+xdebug+qcachegrind(mac)性能分析

3、现在开始安装此工具吧(因为我用的是mac所以这里介绍用mac安装方式):

(1)brew install graphviz
    执行此命令安装graphviz,用来Call Graph功能
(2)brew install qcachegrind
    安装qcachegrind
(3)以上两步安装好后打开qcachegrind工具,发现Call Graph功能无法使用,[How to install qcachegrind (kcachegrind) on Mac OSX Snow Leopard][4] 此文章可以解决
sudo ln -s /usr/local/bin/dot /usr/bin/dot
(4)我的mac执行(3)中命令出错:
ln: /usr/bin/dot: Operation not permitted
查了下,发现是mac系统完整性保护,mac系统一些重要的系统目录禁止修改,即使是切换到root也不行,这时,可暂时修改:
    (1)关机后,开机的同时或者在听到开始音的同时,按住Command+R键
    (2)打开Terminal窗口输入命令:csrutil disable;
    (3)重启电脑后再执行命令:sudo ln -s /usr/local/bin/dot /usr/bin/dot
    (4)重复(1)步骤,(2)步骤命令替换为:csrutil enable;  恢复默认的mac权限

4、可以将自己安装的qcachegrind应用复制到APPlication目录随时打开查看
php+xdebug+qcachegrind(mac)性能分析

相关推荐