• 技术文章 >后端开发 >php教程

    关于PHP+xdebug分析代码性能瓶颈

    藏色散人藏色散人2021-02-19 09:07:51转载396

    PHP + xdebug 分析代码性能瓶颈

    通常启用了xdebug插件,性能测试输出文件会伴随生成,通常是以cachegrind.out.xxxx 文件存在。

    该文件可以通过第三方工具来进行代码性能分析。

    但如果本地有多个项目/网站,所有的profile 都输出到一个文件中了,这样并不方便后面进行性能分析。

    自定义profile 文件名称

    可以通过配置xdebug.profiler_output_name 参数来设置输出文件名称,部分参数如下:

    符号含义配置样例样例文件名
    %c当前工作目录的crc32校验值cachegrind.out.%ccachegrind.out.1258863198
    %p当前服务器进程的pidcachegrind.out.%pcachegrind.out.9685
    %r随机数cachegrind.out.%rcachegrind.out.072db0
    %s脚本文件名(注)cachegrind.out.%scachegrind.out._home_httpd_html_test_xdebug_test_php
    %tUnix时间戳(秒)cachegrind.out.%tcachegrind.out.1179434742
    %uUnix时间戳(微秒)cachegrind.out.%ucachegrind.out.1179434749_642382
    %H$_SERVER['HTTP_HOST']cachegrind.out.%Hcachegrind.out.localhost
    %R$_SERVER['REQUEST_URI']cachegrind.out.%Rcachegrind.out._test_xdebug_test_php_var=1_var2
    %Ssession_id (来自$_COOKIE 如果设置了的话)cachegrind.out.%Scachegrind.out.c70c1ec2375af58f74b390bbdd2a679d
    %%%字符cachegrind.out.%%cachegrind.out.%%

    编辑php.ini 配置文件:

    xdebug.profiler_output_name = cachegrind.out.%H

    然后重启 php server。

    在Mac 下,profile 文件存放于/var/tmp/目录中。

    性能分析

    在Mac 下,有MacCallGrind 和 qcachegrind 可以使用,不过前者是收费,直接通过Apple Store下载,后者是免费。需要手动安装。

    安装graphviz,用来Call Graph功能:

    $ brew install graphviz

    安装 qcachegrind:

    $ brew install qcachegrind

    安装完成之后,就可以打开 qcachegrind 应用了,图形界面如下:

    b10ece112acd8ede7f3f82fd12dc73f.png

    其他

    不过需要注意,开启了profile文件输出之后,如果本地项目多的话,很容易占用磁盘大面积空间,下图是我半年左右没有清理的状态:

    50caf8c81d77d3a7624b73114270df3.png

    可以使用命令进行清理:

    $ sudo rm -fr /private/var/tmp/cachegrind.out.*

    以上就是关于PHP+xdebug分析代码性能瓶颈的详细内容,更多请关注php中文网其它相关文章!

    本文转载于:segmentfault,如有侵犯,请联系a@php.cn删除
    专题推荐:php xdebug
    上一篇:【案例分析】详解PHP static关键字作用 下一篇:实用讲解PHP隐藏手机号码中间4位方法
    第15期线上培训班

    相关文章推荐

    • PHP Xdebug 是什么?• phpstorm 如何使用 Xdebug 调试代码• PHP7如何禁用Xdebug• 详解dvwa切换php版本及phpstorm -xdebug的配置使用• 介绍关于Xdebug提示不支持php7.0的坑

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网