作为 PHP 程序员我们或多或少都了解或使用过 xdebug. 此文章记录安装和配置 xdebug, 以及如何使用它来分析 PHP 程序.
我的机器环境: Mac, PHP
安装 xdebug
推荐使用 pecl 安装扩展
pecl install xdebug
注: 可以选择版本, https://pecl.php.net/package/xdebug
启用和配置
如果不知道 PHP 的配置文件, 可以用 PHP --INI 查看
启用 xdebug, 添加一个独立的 ext-xdebug.INI 到 PHP 的配置目录
- [xdebug]
- zend_extension="xdebug.so"
- # profiler 功能的开关, 默认值 0, 如果设为 1, 则每次请求都会生成一个性能报告文件.
- # xdebug.profiler_enable=0
- # 默认值是 0, 如果设为 1 则当我们的请求中包含 XDEBUG_PROFILE 参数时才会生成性能报告文件
- xdebug.profiler_enable_trigger=1
- # 分析文件保存目录, 默认是 /var/tmp
- xdebug.profiler_output_dir="/var/tmp/xdebug"
现在使用 PHP -m 能看到 xdebug, 并且使用 PHP --ri xdebug 能看到配置项都生效就 ok 了.
访问并生成分析文件
使用 fpm 要重启, 扩展才能生效
现在我们可以访问 PHP 项目, 记得在请求参数带上 XDEBUG_PROFILE, 类似 http://127.0.0.1:5671/my?XDEBUG_PROFILE
ok, 现在 xdebug 应该已经在我们配置的分析文件保存目录产生了文件, 类似
- % ll /var/tmp/xdebug
- -rw-r--r-- 1 user group 48K 4 29 13:40 cachegrind.out.37947
生成的分析文件直接查看是难以阅读的. 所以我们要使用分析查看工具
分析查看工具
使用 qcachegrind
要查看分析图表, 需要安装 graphviz:
brew install graphviz
安装 qcachegrind
brew install qcachegrind
在命令行里使用 qcachegrind 打开它, 然后通过它打开要分析的文件.
也可以在命令后直接跟要分析的文 qcachegrind /var/tmp/xdebug/cachegrind.out.37947
使用 webgrind
下载: https://github.com/jokkedk/webgrind
要查看分析图表, 同样需要安装 graphviz.
分析的时候 "Call Graph" 功能用不了
方法 1
sudo ln -s /usr/local/bin/dot /usr/bin/dot
方法 2 修改 config.PHP
- /**
- * Path to graphviz dot executable
- */
- static $dotExecutable = '/usr/local/bin/dot';
- // static $dotExecutable = '/usr/bin/dot';
运行:
PHP -S 0.0.0.0:80 index.PHP
现在, 你可以访问: http://localhost
来源: http://www.bubuko.com/infodetail-3203319.html