当前位置: 首页 > news >正文

xdebug3开启profile和trace

【xdebug开启profiler】

https://xdebug.org/docs/profiler
http://www.xdebug.org.cn/docs/profiler

1、php.ini添加下面配置然后重启php容器:

xdebug.mode=profile
;这个目录保存profile和trace文件
xdebug.output_dir =/var/tmp/xdebug

PHP日志提示报错:
PHP message: Xdebug: [Profiler] File ‘/var/tmp/xdebug/cachegrind.out.8’ could not be opened

解决方案:将/var/tmp/xdebug目录权限设置成777:
chmod 777 /var/tmp/xdebug
这个目录最好换成挂载的项目路径下,这样才能在本地环境下查看生成的profile文件,比如:
xdebug.output_dir = /www/php_demo/xdebug
也可以换成下面的配置,就可以在当前执行方法的文件下生成profile文件:
xdebug.output_dir = ./

2、phpstorm开启debug,执行一下要追踪的方法,就会生成profile文件
生成文件的名称总是以 "cachegrind.out."开头,默认情况下以 PHP(或 Apache)进程的 PID(进程 ID)结尾。您可以使用 xdebug.profiler_output_name 更改文件名格式。

3、分析 Profiles
(1)通过phpstorm分析
双击shift,启动万能的搜索框,输入“Analyze Xdebug Profiler Snapshot”回车即可选择分析profile文件。
(2)通过QCacheGrind分析
下载地址:https://sourceforge.net/projects/qcachegrindwin/
注意:
1、修改php.ini xdebug.use_compression参数配置。将其设为false。否则生成的profile文件是带有gz后缀的压缩文件,QCacheGrind无法打开这个格式的文件。
2、如果打开文件目录时找不到文件,把搜索文件类型修改为“All File”

在这里插入图片描述

在这里插入图片描述

[自主选择是否生成profile]

xdebug2和xdebug3的配置是不一样的:

xdebug2是使用下面的配置:

;下面这两个参数在xdebug3都被移除了,参考文档:https://xdebug.org/docs/upgrade_guide
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 1

xdebug3是使用下面的配置:

php.ini配置加上:
;这个配置使得只有在请求开始时存在特定触发器时,功能才会被激活。
;https://local.phpdemo.com/?XDEBUG_PROFILE=1 请求后面带有特定的标识才会执行对应的操作,比如生成profile文件
;https://xdebug.org/docs/all_settings#start_with_request
xdebug.start_with_request=trigger

在这里插入图片描述

访问接口的时候,加上XDEBUG_PROFILE参数即可,value可以为任意值
https://local.phpdemo.com/?XDEBUG_PROFILE=1

;通过 xdebug.trigger_value,您可以控制激活触发器的具体触发值。如果 xdebug.trigger_value 设置为空字符串,则任何值都可以触发。
;如果加上这个配置,访问接口得是:http://local.phpdemo.com/?XDEBUG_PROFILE=cowboy,才会激活。要对接口加上断点调试,就得加上XDEBUG_SESSION=cowboy
xdebug.trigger_value=cowboy

【xdebug开启trace】

php.ini配置:

xdebug.mode=debug,profile,trace
;这个目录保存profile和trace文件,要先设置777权限
xdebug.output_dir = /www/php_demo/xdebug
;指定trace的文件显示格式,默认是0;生成的文件直接拉到浏览器就能打开了。
xdebug.trace_format = 3

同样访问格式:http://local.phpdemo.com/?XDEBUG_TRACE=cowboy
生成的trace文件直接拉到浏览器就能打开了。

最终的php.ini配置文件:

;xdebug3用下面的配置
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
;xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.idekey=PHPSTORM;开启profile(注意:可以设置多个xdebug模式,比如xdebug.mode=debug,trace,profile)
xdebug.mode=debug,profile,trace
;这个目录保存profile和trace文件,要先设置777权限
xdebug.output_dir = /www/php_demo/xdebug
;关闭压缩,qcachegrind 工具不支持.gz 格式的分析日志。phpstorm就可以支持分析压缩文件
xdebug.use_compression = false;下面这两个参数在xdebug3都被移除了,参考文档:https://xdebug.org/docs/upgrade_guide
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 1;这个配置使得只有在请求开始时存在特定触发器时,功能才会被激活。
;https://local.phpdemo.com/?XDEBUG_PROFILE=1 请求后面带有特定的标识才会执行对应的操作,比如生成profile文件
;https://xdebug.org/docs/all_settings#start_with_request
xdebug.start_with_request=trigger
;通过 xdebug.trigger_value,您可以控制激活触发器的具体触发值。如果 xdebug.trigger_value 设置为空字符串,则任何值都可以触发。
;如果加上这个配置,访问接口得是:http://local.phpdemo.com/?XDEBUG_PROFILE=cowboy,才会激活。
xdebug.trigger_value=cowboy;指定trace的文件显示格式,默认是0;生成的文件直接拉到浏览器就能打开了。
xdebug.trace_format = 3

相关文章:

xdebug3开启profile和trace

【xdebug开启profiler】 https://xdebug.org/docs/profiler http://www.xdebug.org.cn/docs/profiler 1、php.ini添加下面配置然后重启php容器: xdebug.modeprofile ;这个目录保存profile和trace文件 xdebug.output_dir /var/tmp/xdebugPHP日志提示报错&#xff1a…...

EfficientFormer:高效低延迟的Vision Transformers

我们都知道Transformers相对于CNN的架构效率并不高,这导致在一些边缘设备进行推理时延迟会很高,所以这次介绍的论文EfficientFormer号称在准确率不降低的同时可以达到MobileNet的推理速度。 Transformers能否在获得高性能的同时,跑得和Mobile…...

【咕咕送书第二期】| 计算机网络对于考研的重要性?

🎬 鸽芷咕:个人主页 🔥 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 📋 前言什么是计算机网络?01 为什么计算机专业要学计算机网络02 计算机网络对考研的重要性 …...

【力扣】58. 最后一个单词的长度

题目描述 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s “Hello World” 输出&#xff1a…...

Java编程的精髓:深入理解JVM和性能优化

文章目录 Java虚拟机(JVM)的核心概念1. 类加载器(Class Loader)2. 内存区域3. 垃圾回收(Garbage Collection)4. 类型转换和多态 JVM性能调优1. JVM参数调整2. 内存管理3. 多线程优化4. 使用性能分析工具5. …...

易云维®智慧工厂数字化管理平台助推工业制造企业数字化转型新动能

近年来,我国正在积极推进工业制造企业数字化转型,工业制造企业数字化转型迎来了密集的利好政策,近期,国家工信部又出台系列政策,实施工业制造企业数字化促进工程,推动工业制造企业更快更好地拥抱数字经济。…...

0.基本概念——数据结构学习

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。 数据:描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输出给计算机处理的符号集合。数据元素…...

Redis可视化工具-Another Redis Desktop Manager 安装

Another Redis DeskTop Manager 是 Redis 可视化管理工具,体积小,完全免费。最重要的是稳定,而且操作简单、方便。 目录 一、下载安装 下载 安装 二、简单使用 连接 新增key 三、springboot整合redis 前期准备 一、下载安装 下载 下载…...

ETLCloud工具让美团数据管理更简单

美团为第三方开发者和商家提供了一系列开放的API接口和工具,使其可以与美团的业务进行对接和集成,从而获得更多的业务机会和增长空间。 通过美团开放平台,第三方开发者和商家可以实现以下功能: 开放接口:美团开放平台…...

ctfshow 命令执行 (29-39)

学习参考的 https://www.cnblogs.com/NPFS/p/13279815.html 说的很全面 web29 命令执行,需要严格的过滤 源码 error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__); } …...

如何玩转CSDN AI工具集

前言 人工智能生成内容(AIGC)是当下最具有前景的技术领域之一。AI能够以惊人的速度和准确度生成各种类型的内容,完成文章翻译、代码生成、AI对话、插图创作等工作,带来了许多令人兴奋的机遇。 本文将介绍CSDN AI工具集的基本使用…...

软件测试/测试开发丨利用人工智能ChatGPT自动生成PPT

点此获取更多相关资料 简介 PPT 已经渗透到我们的日常工作中,无论是工作汇报、商务报告、学术演讲、培训材料都常常要求编写一个正式的 PPT,协助完成一次汇报或一次演讲。PPT相比于传统文本的就是有布局、图片、动画效果等,可以给到观众更好…...

Vue 正计时器组件

工作中遇到了一个时间正计时的功能。 另外涉及到有Vue父组件调用子组件中的data和method,作为记录。 下面贴代码~ HTML部分 <template><div class"timer"><div ref"startTimer">00:00:00</div></div> </template>JS…...

神仙打架!谷歌和OpenAI竞相推出多模式AI

原创 | 文 BFT机器人 随着秋季的到来&#xff0c;科技界正在展开另一场季节性活动——科技巨头谷歌和OpenAI正在竞相发布下一代多模态大语言模型&#xff0c;这些高级模型能够解释图像和文本&#xff0c;使他们能够执行诸如从草图生成网站代码或以文本形式描述视觉图表等任务。…...

MySQL 字符集

文章目录 1.简介2.支持的字符集3.字符集级别4.数据库字符集5.数据表字符集6.表字段字符集7.字符串常量字符集8.客户端字符集参考文献 1.简介 MySQL 支持多种字符集&#xff0c;使您能够使用各种字符集存储数据&#xff0c;并根据给定排序规则执行比较。 MySQL 服务器默认字符…...

java生成PDF的Util

java使用itext生成pdf-CSDN博客 接上文 支持绘制表格 支持表格中的文本 字体加粗、字体上色、单元格背景上色&#xff0c; 支持拼接文本 支持单行文本 多种背景颜色、字体上色 支持自定义水印 废话不说先上效果图 工具类代码 package com.zxw.文件.PDF.util;import com.…...

【openwrt学习笔记】新patch的制作和旧patch的修改

目录 一、参考资料二、使用QUILT工具添加补丁2.1 添加一个新的补丁2.2 编辑一个已存在的补丁2.3 补丁命名规范2.4 添加或修改内核补丁文件 三、使用diff 打补丁四、相关问题及解决方法4.1 make package/package-name/update Vs失败 一、参考资料 Working with patches 二、使…...

【GIT】Git clone https://xxx.git 报错仓库找不到,ssh却可以。

环境 MacBook Pro&#xff1a;13.0 (22A380)&#xff0c;Intel。 Python&#xff1a;3.10.9 序言 最近在Mac电脑中按照stable diffusion webUI 时&#xff0c;总是报&#xff1a; MacBook-Pro:openai yutao$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-…...

Vue系列(三)之 基础语法下篇【事件处理,表单综合案例,组件通信】

一. 事件处理 在 Vue.js 中&#xff0c;v-on 指令被用于监听 DOM 事件&#xff0c;并在事件触发时执行相应的方法&#xff0c;这些方法就是事件处理器。v-on 指令有简写形式 &#xff0c;例如 click"handleClick" 会监听点击事件并执行 handleClick 方法。 事件处理…...

AI 编码助手 Codewhisperer 安装步骤和使用初体验

文章作者&#xff1a;为了自己加油 最近亚⻢逊云科技推出了一款基于机器学习的AI编程助手 Amazon Code Whisperer&#xff0c;可以实时提供代码建议。在编写代码时&#xff0c;它会自动根据现有的代码和注释给出建议。Amazon Code Whisperer与 GitHub Copilot 类似&#xff0c;…...

百度网盘提取码智能获取:如何用3行命令告别密码搜索烦恼

百度网盘提取码智能获取&#xff1a;如何用3行命令告别密码搜索烦恼 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经遇到过这样的情况&#xff1a;在网络上找到一份宝贵的学习资料&#xff0c;点击百度网盘分享链接…...

5分钟打造专业级抽奖系统:Magpie-LuckyDraw全平台使用终极指南

5分钟打造专业级抽奖系统&#xff1a;Magpie-LuckyDraw全平台使用终极指南 【免费下载链接】Magpie-LuckyDraw &#x1f3c5;A fancy lucky-draw tool supporting multiple platforms&#x1f4bb;(Mac/Linux/Windows/Web/Docker) 项目地址: https://gitcode.com/gh_mirrors/…...

Sendwithus模板与现代邮件客户端兼容性测试:终极解决方案

Sendwithus模板与现代邮件客户端兼容性测试&#xff1a;终极解决方案 【免费下载链接】templates Sendwithus Open Source Email Templates 项目地址: https://gitcode.com/gh_mirrors/temp/templates Sendwithus Open Source Email Templates是一套强大的开源邮件模板集…...

HoRain云--Skills 工作原理

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...

3步搞定Windows安卓应用安装:告别模拟器的全新体验

3步搞定Windows安卓应用安装&#xff1a;告别模拟器的全新体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上运行手机应用&#xff0c;却…...

3分钟搞定网易云音乐NCM解密:ncmdump工具让你的音乐随处播放

3分钟搞定网易云音乐NCM解密&#xff1a;ncmdump工具让你的音乐随处播放 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定客户端播放而烦恼&#xff1f;当你想要在车载音响、智能音箱或其他…...

英雄联盟国服换肤终极指南:R3nzSkin免费体验全皮肤

英雄联盟国服换肤终极指南&#xff1a;R3nzSkin免费体验全皮肤 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 厌倦了英雄联盟国服中单调的默认皮肤&am…...

Cadence 16.6 新手避坑指南:从零搭建PCB设计库(OLB、焊盘、封装分类管理)

Cadence 16.6 新手避坑指南&#xff1a;从零搭建PCB设计库&#xff08;OLB、焊盘、封装分类管理&#xff09; 刚接触Cadence 16.6的PCB设计新手&#xff0c;往往会在库文件管理这个环节栽跟头。面对Allegro、Design Entry CIS和Pad Designer这三个核心工具&#xff0c;如何系统…...

从原理到实战:拆解LCR表如何实现0.1%精度的电容测量(附寄生效应消除指南)

从原理到实战&#xff1a;拆解LCR表如何实现0.1%精度的电容测量&#xff08;附寄生效应消除指南&#xff09; 在电子工程领域&#xff0c;精确测量电容值是一项基础却极具挑战性的任务。无论是研发高频电路的设计师&#xff0c;还是调试精密仪表的工程师&#xff0c;亦或是研究…...

【多智能体】多智能体多视角三维空间定位的神经动力学方法【含Matlab源码 15447期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab武动乾坤博客之家&#x1f49e;…...