PHP和Python脚本的性能监测方案
目录
1. 说明
2. PHP脚本性能监测方案
2.1 安装xdebug
2.2 配置xdebug.ini
2.3 命令行与VS Code中使用
- 命令行
- VS Code
2.4 QCacheGrind 浏览
3. Python脚本性能监测方案
3.1 命令行
4. 工具
5.参考
1. 说明
获取我们的脚本程序运行时的指标,对分析与解决性能瓶颈问题是非常重要的一环,以下介绍在PHP与Python下的实践方案:安装性能监测插件 + 产生监测日志 + 用QCacheGrind工具分析
2. PHP脚本性能监测方案
2.1 安装xdebug
# wsl2下的ubuntu20 LTS为例apt install php7.4-xdebug

2.2 配置xdebug.ini
tips: 路径可通过查php -i|grep xdebug.ini获取
zend_extension=xdebug.so# 指定日志输出路径
xdebug.output_dir = "/xdebug_logs"
xdebug.profiler_append = 0xdebug.mode = profile
xdebug.start_with_request = trigger
xdebug.log_level = 7
2.3 命令行与VS Code中使用
- 命令行
php -dxdebug.mode=profile myscript
- VS Code
切记:vscode运行时连接WSL,选择对应的ubuntu目录,不然你的运行环境将不一致
普通的launch.json
{"name": "Debug current script in console","type": "php","request": "launch","program": "${file}","cwd": "${fileDirname}","runtimeArgs": ["-d xdebug.mode=profile"],"externalConsole": false,"port": 9003
}
以TP6为例的launch.json
{"name": "Run PHP Profile","type": "php","request": "launch","cwd": "${workspaceRoot}","program": "${workspaceRoot}/think","args": ["myaction","0"],"runtimeArgs": ["-d xdebug.mode=profile"],"externalConsole": false,"port": 9003
}
截图: 
2.4 QCacheGrind 浏览
生成的日志保存在 \\wsl.localhost\Ubuntu-20.04\xdebug_logs


3. Python脚本性能监测方案
python内部已经提供了cProfile性能监测模块,我们用它就好,只需要把它出来的文件转换一下
3.1 命令行
# 产生日志到./tmp/profile_output.prof
python -m cProfile -o ./tmp/profile_output.prof ./class_test2.py# 转换格式
python -m pyprof2calltree -i profile_output.prof -o callgrind.cprof

4. 工具
| 工具 | 说明 |
|---|---|
| QCacheGrind | windows工具,能可视化查看callgrind格式的性能数据 下载:https://sourceforge.net/projects/qcachegrindwin/ |
| PHP | |
| XDebug | 官网: Xdebug - Debugger and Profiler Tool for PHP |
| Python | |
| cProfile | 内置标准模块, 性能分析模块 例子: python -m cProfile -o ./tmp/profile_output.prof ./class_test2.py |
| pyprof2calltree | 把cprofile产生的性能日志转换为QCacheGrind格式, 例子: python -m pyprof2calltree -i profile_output.prof -o callgrind.cprof |
5.参考
- Xdebug: Documentation » Profiling
- The Python Profilers — Python 3.13.0 documentation
- https://gist.github.com/Susensio/efd9422e14556dff4122434c3603aff3
相关文章:
PHP和Python脚本的性能监测方案
目录 1. 说明 2. PHP脚本性能监测方案 2.1 安装xdebug 2.2 配置xdebug.ini 2.3 命令行与VS Code中使用 - 命令行 - VS Code 2.4 QCacheGrind 浏览 3. Python脚本性能监测方案 3.1 命令行 4. 工具 5.参考 1. 说明 获取我们的脚本程序运行时的指标,对分析…...
C语言实现数据结构之堆
文章目录 堆一. 树概念及结构1. 树的概念2. 树的相关概念3. 树的表示4. 树在实际中的运用(表示文件系统的目录树结构) 二. 二叉树概念及结构1. 概念2. 特殊的二叉树3. 二叉树的性质4. 二叉树的存储结构 三. 二叉树的顺序结构及实现1. 二叉树的顺序结构2.…...
战略共赢 软硬兼备|云途半导体与知从科技达成战略合作
2024年11月5日,江苏云途半导体有限公司(以下简称“云途”或“云途半导体”)与上海知从科技有限公司(以下简称“知从科技”)达成战略合作,共同推动智能汽车领域高端汽车电子应用的开发。 云途半导体与知从科…...
python:用 sklearn 构建 K-Means 聚类模型
pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…...
elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
没有使用selectableRange 禁用时分秒,是因为他会禁止每天的时分秒。 我们需要解决的是当开始时间、结束时间是同一天时, 开始时间不能超过结束时间。 如果直接清空,用户体验不好。所以用watch监听赋值,当前操作谁,它不…...
Oracle 聚集因子factor clustering
文章目录 聚集因子(Factor clustering)举例说明查询聚集因子聚集因子的优化结论 最近发现突然忘记聚集因子的原理了,故整理记录一下 聚集因子(Factor clustering) 在Oracle中,聚集因子(Clustering Factor)用于衡量数据在表中存储…...
【大数据学习 | kafka高级部分】kafka的快速读写
1. 追加写 根据以上的部分我们发现存储的方式比较有规划是对于后续查询非常便捷的,但是这样存储是不是会更加消耗存储性能呢? 其实kafka的数据存储是追加形式的,也就是数据在存储到文件中的时候是以追加方式拼接到文件末尾的,这…...
云技术基础
学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 https://space.bilibili.com/350329294* 为什么要学云技术? 无论是防御还是…...
字节序(Byte Order)
这里写自定义目录标题 有两种主要的字节序:字节序与平台字节序转换 字节序(Byte Order)是指数据在内存中存储时字节的排列顺序。由于不同的计算机体系结构可能采用不同的字节序,因此理解字节序非常重要,特别是在处理多…...
融云:社交泛娱乐出海机会尚存,跨境电商异军突起
近年来,直播、语聊房、游戏社区,这些中国网友熟悉的网络社交形式,正在海外市场爆发出新的生命力。无论是被炒到几百人民币一个的 Clubhouse 邀请码,还是先后登顶中东下载榜的 Yalla、JACO,这些快速掀起体验浪潮的社交娱…...
django博客项目实现站内搜索功能
Django博客站内搜索功能实现 1. 准备工作 确保Django项目已经创建好,并且有一个用于存储博客文章的模型(例如Post)。 2. 定义搜索表单 在应用目录下创建一个forms.py文件,定义一个搜索表单。 from django import formsclass …...
蓝桥杯c++算法学习【1】之枚举与模拟(卡片、回文日期、赢球票、既约分数:::非常典型的比刷例题!!!)
别忘了请点个赞收藏关注支持一下博主喵!!! 关注博主,更多蓝桥杯nice题目静待更新:) 枚举与模拟 一、卡片: 【问题描述】 小蓝有很多数字卡片,每张卡片上都是一个数字(0到9)。 小蓝…...
Android 延时操作的常用方法
一、简介 在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是引导页面,3秒后进入主界面,这就是一个延时操作。还有一种是执行某些接口任务时,需要有超时机制。下面介绍常用的…...
AI驱动的轻量级笔记应用Blinko
什么是 Blinko ? Blinko 是一个创新的开源项目,专为想要快速捕捉和整理瞬间想法的个人而设计。Blinko 允许用户在灵感迸发的瞬间无缝记录想法,确保不会错过任何创意火花。 Blinko 的设计初衷是让笔记记录变得更简单,让用户专注于内…...
一文搞懂 UML 类图
面向对象设计 主要就是使用UML的类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据 一、UML类图简介 统一建模语言 UML …...
Zabbix 7 最新版本安装 Rocky Linux 8
前言 本实验主要在Rocky Linux 中安装Zabbix,其他centos8、Debian、Ubuntu、Alma Linux都可以安装,就是在中间件有点不同。Nginx就要配置一下,官网给的教程也算是很规范的,就是在MySQL上要自己安装,他没有告诉我们&am…...
使用HTML、CSS和JavaScript创建动态雪人和雪花效果
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨特色专栏:…...
redis bind 127.0.0.1和bind 10.34.56.78的区别
绑定到 127.0.0.1,默认情况下,Redis 只会接受来自本地主机的连接。其他地址的则无法成功连接。如果绑定到主机的IP地址,则是可以被其他主机连接的。 可以通过iptables规则,进一步限制对redis的访问。 1、允许本地回环接口链接 …...
基于点云的 3D 目标检测模型 PointPillars 部署 tensorRT
PointPillars 3D 目标检测模型部署 tensorRT 一直想折腾一下基于点云的目标检测模型,但由于没有实际项目或工作需要,搞也搞的不够深入,把开源的模型跑一下似乎好像做过又好像没有做过。内心一直想搞一下,选定了 PointPillars 这个…...
centos查看硬盘资源使用情况命令大全
在 CentOS 系统中,你可以使用几个命令来查看硬盘的资源和使用情况。以下是一些常用的命令: 1. df 命令 df (disk free) 用于显示文件系统的磁盘空间占用情况。 df -h-h 参数表示以人类可读的格式(如 GB, MB)显示。输出会显示每…...
PathOfBuilding架构深度解析:流放之路离线构建规划器的技术实现方案
PathOfBuilding架构深度解析:流放之路离线构建规划器的技术实现方案 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding PathOfBuilding是《流放之路》最权威的离…...
Hunyuan-MT-7B翻译模型实测:33种语言互译效果到底如何?
Hunyuan-MT-7B翻译模型实测:33种语言互译效果到底如何? 1. 引言:多语言翻译的新标杆 在全球化交流日益频繁的今天,高效准确的多语言翻译工具已成为刚需。腾讯混元团队最新开源的Hunyuan-MT-7B模型,凭借70亿参数的紧凑…...
从物理层到数据链路:深入解析CAN总线的核心通信机制
1. CAN总线的前世今生:为什么我们需要它? 想象一下你正在组装一辆智能汽车,发动机、变速箱、ABS、仪表盘这些部件都需要互相"对话"。如果每个设备都用独立线路连接,光是布线就能让工程师崩溃。这就是CAN总线诞生的背景—…...
Sora走了,PixVerse V6来了!AI视频空间时间处理能力大增,延时拍摄、慢动作都能搞
西风 发自 凹非寺量子位 | 公众号 QbitAISora前脚刚被叫停,国内AI视频玩家后脚立刻续上新模型。这回不搞“能生成视频就行”那套了,直接给你整出感官级沉浸式体验。有多沉浸?一句话让你get电影《功夫小蝇》同款视角,小蜜蜂误闯人类…...
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南 1. 为什么选择云端镜像而非本地部署 去年冬天,当我第一次尝试在本地MacBook Pro上部署OpenClaw时,整整浪费了两个周末的时间。Node版本冲突、Python依赖缺失、CUDA驱动不兼容——这些看似简单…...
Proxy最佳实践:企业级C++项目中如何正确使用多态库
Proxy最佳实践:企业级C项目中如何正确使用多态库 【免费下载链接】proxy Proxy: Next Generation Polymorphism in C 项目地址: https://gitcode.com/gh_mirrors/pr/proxy 在当今的企业级C开发中,运行时多态性是构建可扩展、可维护系统的关键。传…...
别再只用CEEMDAN了!信号分解后,这7种熵指标到底该怎么选?(能量熵/近似熵/模糊熵对比)
信号分解后熵指标选型指南:从能量熵到多尺度排列熵的深度解析 在信号处理领域,CEEMDAN等分解方法早已成为研究人员的标准工具包——它们像精密的滤波器,将复杂信号拆解为一系列物理意义明确的IMF分量。但当我们面对这些分解后的子信号时&…...
番茄小说下载器:打造个人数字图书馆的完整攻略
番茄小说下载器:打造个人数字图书馆的完整攻略 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾遇到过网络信号不佳时无法追更小说的烦恼?或者希…...
告别直播回放获取难题!用douyin-downloader实现高效内容管理的3个创新方法
告别直播回放获取难题!用douyin-downloader实现高效内容管理的3个创新方法 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and bro…...
仅剩127天!Python 3.14+原生AOT将成标准解释器默认后端:企业级迁移路线图与兼容性断点预警
第一章:Python 原生 AOT 编译方案 2026 生产环境部署全景概览Python 原生 AOT(Ahead-of-Time)编译在 2026 年已进入成熟商用阶段,核心由 CPython 官方主导的 cpython-aot 工具链与 PEP 718 所定义的字节码预优化规范共同支撑。该方…...
