官方文档 Xdebug: Documentation » Profiling

以下操作都以macbook环境为例

docker内php安装xdebug

pecl install xdebug
docker-php-ext-enable xdebug

本地php安装xdebug

pecl install xdebug

成功后提示

Build process completed successfully
Installing '/usr/local/Cellar/php@7.2/7.2.34_2/pecl/20170718/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.1.5
Extension xdebug enabled in php.ini

执行 php --ini 查看php所使用的配置路径

本地编辑php.ini文件,docker内编辑配置路径下 docker-php-ext-xdebug.ini, 例如

vi /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

docker内可能会提示无法使用vi命令,可执行一下命令安装

apt-get update
apt-get install vim

完成后编辑xdebug相关配置

zend_extension=xdebug
xdebug.mode=profile
xdebug.start_with_request=XDEBUG_TRIGGER // 可选,如果不配置这个所有访问都会生成分析文件,启用的话可通过url参数的形式来触发分析,例如 http://localhost/inde.php?XDEBUG_TRIGGER
xdebug.output_dir=/www   //分析脚本输出目录,docker内的话需要将地址改为docker内与本地目录映射的地址
xdebug.use_compression=false

然后重启本地php或者docker php

安装xdebug脚本分析软件

brew install qcachegrind
启动命令 qcachegrind

然后调用需要分析的api,会在上面设置的 xdebug.output_dir 目录里生成xdebug分析文件,在qcachegrind里打开分析文件即可看到分析内容

我本地是php7.2的,之前通过brew install php@7.2 安装的

上面执行完后php无法正常运行了,提示

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.68.dylibReferenced from: /usr/local/opt/php@7.2/bin/phpReason: image not found
[7]    63371 abort      php -m

我猜是安装qcachegrind导致的,解决办法,只有重装php

brew upgrade php@7.2
==> Upgrading 1 outdated package:
php@7.2 7.2.34_2 -> 7.2.34_4
Error: php@7.2 has been disabled because it is deprecated upstream!

因为我不想换版本,本来想直接通过升级来解决,但是官方brew又不支持php7.2了,只有想其他办法来重装.

先卸载原来的php

brew services stop php@7.2
brew uninstall php@7.2

重装php7.2

brew tap shivammathur/php
brew install shivammathur/php/php@7.2

安装成功提示

The php.ini and php-fpm.ini file can be found in:/usr/local/etc/php/7.2/
​
php@7.2 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
​
If you need to have php@7.2 first in your PATH, run:echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.zshrcecho 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.zshrc
​
For compilers to find php@7.2 you may need to set:export LDFLAGS="-L/usr/local/opt/php@7.2/lib"export CPPFLAGS="-I/usr/local/opt/php@7.2/include"
​
​
To restart shivammathur/php/php@7.2 after an upgrade:brew services restart shivammathur/php/php@7.2
Or, if you don't want/need a background service you can just run:/usr/local/opt/php@7.2/sbin/php-fpm --nodaemonize

然后根据上面提示,启动php7.2

brew services start shivammathur/php/php@7.2

惊奇的发现之前安装的php扩展都还在,什么都不用改,很nice.

docker内php使用xdebug性能分析相关推荐

  1. 第41讲:MySQL内置的QL性能分析工具

    文章目录 1.SQL性能分析的概念 2.分析数据库中SQL的执行频率 3.数据库中的慢查询日志 3.1.开启慢查询日志功能 3.2.模拟慢SQL查询观察日志内容 4.Profile查看SQL每个阶段的 ...

  2. go build 无文件_Go学习_30_Golang代码性能分析工具

    Golang内置了一些性能分析工具,可以将性能分析的结果文件输出,我们可以使用图形化的工具查看分析结果,在使用这些工具之前,我们需要安装一些工具,以便于查看分析文件. 为了支持查看图形化分析结果,首先 ...

  3. 算法与数据结构(part2)--Python内置类型性能分析

    学习笔记,仅供参考 文章目录 算法与数据结构--基于python Python内置类型性能分析 timeit模块 计时器类timeit.Timer 计时器类下的timeit.Timer.timeit方 ...

  4. java dump分析工具_Java 性能分析工具 (2):Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  5. php性能分析工具 - xhprof的安装使用

    一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, ...

  6. Jvisualvm--JAVA性能分析工具

    JDK自带的JAVA性能分析工具.它已经在你的JDK bin目录里了,只要你使用的是JDK1.6 Update7之后的版本.点击一下jvisualvm.exe图标它就可以运行了. 这里是VisualV ...

  7. php轻量级的性能分析工具xhprof的安装使用

    之前一直使用基于Xdebug进行PHP的性能分析,对于本地开发环境来说是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. ...

  8. Go 服务进行自动采样性能分析的方案设计与实现

    线上服务的性能分析,一直以来都是比较难的点,主要是难在无法在性能出现异常的当时捕捉到现场信息.有人可能会说,这有什么难的,直接用 Go 工具集里的 pprof 访问一下,进行采样拿下来分析就行了.话虽 ...

  9. 鲲鹏devkit(迁移 测试 性能分析) boostkit

    一 devkit 1 业务:不同环境下的开始.测试.部署.迁移.监控项目 2 需求:x86服务器.x86处理器.复杂指令集迁移到鲲鹏服务器.鲲鹏处理器.简洁指令集.调试调优. 3 解决方案: (1)功 ...

最新文章

  1. SVN冲突出现原因及解决方法浅谈
  2. 让 ScrollViewer 的滚动带上动画
  3. 让delphi程序不受WINDOWS日期格式的影响
  4. 学习《apache源代码全景分析》之过滤器部分摘录
  5. 【测试】模拟一个全表扫描的sql,对其进行优化走索引,并且将执行计划稳定到baseLine。...
  6. 使用SQL Storage Compress压缩SQL Server 数据库文件
  7. symantec BESR 异机恢复
  8. QT QAudioOutput+QIODevice 音频流实时播放
  9. win7提示由于系统注册表文件丢失或损坏,无法开机
  10. java中将字符串转换为URL能解析的编码
  11. the7_v610优化破解演示数据
  12. Python实现分解质因数
  13. 歪歪在去往宝石的路上,步履蹒跚中-1
  14. 2021全国职业技能大赛-网络安全赛题解析总结②(超详细)
  15. 【Java学习】JUC并发编程
  16. 花千芳口出狂言说英语没用,王思聪怒怼他!在线英语培训越来越重要!
  17. 处理器最新排行_鲁大师Q2季度PC硬件排行:Intel十代酷睿初入战局,最受欢迎CPU是它...
  18. 《网络攻防》Web基础
  19. excel下拉菜单创建
  20. 识别win10和linux的MBR,Win10下安装ElementaryOS双系统:UEFI和Legacy引导

热门文章

  1. 机4月升级鸿蒙,鸿蒙系统4月升级:一文教你看懂什么是鸿蒙系统?
  2. 阿里云在国内市场占有率怎么样?
  3. IoT黑板报0124:大唐电信推出多款物联网芯片
  4. [Android]酷派8150手机安卓2.3.7系统不能发现Adhoc网络
  5. 交换机的端口模式:access 、trunk和hybrid
  6. MOOC数据结构(下)(自主模式)-重名剔除(Deduplicate)
  7. 欧几里得定理求最大公约数
  8. bat批处理修改文件夹下文件名字
  9. 麒麟短线王至尊版 软件及指标 应用!
  10. 分布式事务:seata