使用 Xdebug 生成 php 的 Profiler
在上一讲我们成功配置了xdebug并可以成功调试代码。ubuntu中PHP xdebug 断点调试
我切换Xdebug 升级到3.x版本后的配置修改,这里我们介绍php在ubuntu的版本切换的命令。
sudo a2enmod php5.6
sudo a2dismod php7.2
sudo update-alternatives --set php /usr/bin/php7.2
sudo systemctl restart apache2
然后把php7.2相对应的扩展再apt-get安装一遍。
vi /etc/php/7.2/mods-available/xdebug.ini
xdebug.client_port= 9000
xdebug.output_dir=/var/tmp/xdebug
xdebug.idekey=PHPSTORM
xdebug.mode = develop,debug,profile,trace
xdebug.profiler_append = 0
xdebug.profiler_output_name = cachegrind.out.%p
xdebug.start_with_request = default|yes|trigger|yes
xdebug.output_dir=/var/tmp/xdebug
xdebug.idekey=PHPSTORM
xdebug.mode = develop,debug,profile,trace
xdebug.profiler_append = 0
xdebug.profiler_output_name = cachegrind.out.%p
xdebug.start_with_request = default|yes|trigger|yes
xdebug3默认端口9000改为9003,为了和以前统一我们把它改回来,和各种文件输出路径更改,关键的idekey设置,打开所有的xdebug模式和其对应的request配置。不要忘记重启服务和观察phpinfo是否真实变更。
如果没有profiler文件生成,检查output_dir文件夹是否有写入权限,或者将文件夹路径改为项目文件夹内部。
使用工具来分析 profiler 文件
这里我使用 phpstorm 的分析工具来查看
Tools > Analyze Xdebug Profiler Snapshot
选择生成的 输出文件, 可以看到文件的解析信息, 这个对于分析自己写的php代码会有很大益处