前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用xdebug对php做性能分析调优

使用xdebug对php做性能分析调优

作者头像
sunsky
发布2020-08-20 16:37:44
1.4K0
发布2020-08-20 16:37:44
举报
文章被收录于专栏:sunskysunsky

作为PHP程序员我们或多或少都了解或使用过xdebug。此文章记录安装和配置xdebug,以及如何使用它来分析php程序。

我的机器环境: mac, php

安装 xdebug

推荐使用 pecl 安装扩展

代码语言:javascript
复制
pecl install xdebug

注:可以选择版本, https://pecl.php.net/package/xdebug

启用和配置

如果不知道php的配置文件,可以用 php --ini 查看

启用 xdebug,添加一个独立的 ext-xdebug.ini 到 php 的配置目录

代码语言:javascript
复制
[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应该已经在我们配置的分析文件保存目录产生了文件, 类似

代码语言:javascript
复制
% ll /var/tmp/xdebug 
-rw-r--r--  1 user  group    48K  4 29 13:40 cachegrind.out.37947

生成的分析文件直接查看是难以阅读的。所以我们要使用分析查看工具

分析查看工具

使用qcachegrind

要查看分析图表,需要安装 graphviz:

代码语言:javascript
复制
brew install graphviz

安装qcachegrind

代码语言:javascript
复制
brew install qcachegrind

在命令行里使用 qcachegrind 打开它,然后通过它打开要分析的文件。

也可以在命令后直接跟要分析的文 qcachegrind /var/tmp/xdebug/cachegrind.out.37947

使用webgrind

下载: https://github.com/jokkedk/webgrind

要查看分析图表,同样需要安装 graphviz.

分析的时候 "Call Graph" 功能用不了

  • 方法 1
代码语言:javascript
复制
sudo ln -s /usr/local/bin/dot /usr/bin/dot
  • 方法 2 修改 config.php
代码语言:javascript
复制
    /**
     * Path to graphviz dot executable
     */
    static $dotExecutable = '/usr/local/bin/dot';
    // static $dotExecutable = '/usr/bin/dot';

运行:

代码语言:javascript
复制
php -S 0.0.0.0:80 index.php

现在,你可以访问: http://localhost

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 xdebug
    • 启用和配置
    • 访问并生成分析文件
    • 分析查看工具
      • 使用qcachegrind
        • 使用webgrind
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档