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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/468912.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS code 远程连接到docker容器

1.需要在vscode中下载remote 、docker、dev container插件。 如下图: 有小鲸鱼标志,说明已经成功。 右键可以运行或者停止容器运行

阿里1688 阿里滑块 231滑块 x5sec分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

Spring Validation数据校检

文章目录 Spring Validation1 关于Spring Validation2 使用流程3 快速入门4 运行异常处理4.1 说明4.2 处理异常4.3 明确提示消息 5 常用注解5.1 NotNull注解5.2 NotEmpty 注解5.3 NotBlank 注解5.4 Size 注解5.5 Range 注解 6 非POJO参数校验6.1 使用流程6.2 使用示例 Spring V…

‌STAR法则

一:STAR法则 STAR法则是一种简单而实用的表现技巧,常被用于求职过程中的个人经历描述,富有条理性,可以帮助你在职场中脱颖而出。“STAR”分别对应的是situation-task-action-result,通过情境、目标、行动和结果四个方面…

uniapp—android原生插件开发(1环境准备)

本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 项目背景: UniApp集成新大陆P…

国标GB28181设备管理软件EasyGBS国标GB28181视频平台:GB/T28181中的流类型

在当今的视频监控领域,GB/T28181协议作为中国国家标准委员会发布的重要技术规范,发挥着举足轻重的作用。这一标准不仅为视频监控系统的设备接入、视频流传输、设备控制等功能提供了明确的技术指导,还极大地促进了不同厂家设备之间的兼容性和互…

使用pip安装项目时,遇到以下错误的解决方案:error: [Errno 13] Permission denied

我是在虚拟环境下出现了这个错误 出现这种情况大概率是conda环境没有下载用户路径下的python解释器,你可以使用下面命令来检查 which python3这里如果出现的路径不是你用户目录下的,就是这个原因,你的conda环境在用户目录下,但是…

无人车之定位技术篇

无人车的定位技术是指确定无人车在世界坐标系(一般指二维环境)中的位置及其本身的姿态的技术。随着技术的不断发展,无人车的定位技术已经实现了多种方法的融合与创新。 一、主要定位技术 GPS定位 原理:基于全球定位系统&#x…

微观经济学速成笔记

需求的收入弹性 需求的收入弹性表示在一定的时期内消费者对某种商品的需求量的变动对于消费者收入量变动的反应程度,供给的收入弹性公式为: 永非证可eM或w-此公-可 根据商品的需求和收入弹性公式&#xff0c;可以将商品分类: em < 0的商品为劣等品(也称低档品)&#xff0c;因…

泷羽sec学习打卡-Windows基础命令2总结篇

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于windows的那些事儿-Base2 一、Windows-Base2常见的协议和端口常用的cmd命令渗透写入文件的思路&…

面经—科大讯飞

1extern c 修饰才能使用c在c中 new delete 可以自动判断分配多少空间 形成多态的两个条件&#xff0c;1.继承关系

软考教材重点内容 信息安全工程师 第1章 网络信息安全概述

第 1 章 网络信息安全概述 1.1.1 网络信息安全相关概念 狭义上的网络信息安全特指网络信息系统的各组成要素符合安全属性的要求&#xff0c;即机密性、完整性、可用性、抗抵赖性、可控性。 广义上的网络信息安全是涉及国家安全、城市安全、经济安全、社会安全、生产安全、人身安…

【51单片机】I2C总线详解 + AT24C02

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 AT24C02介绍存储器 I2C总线介绍I2C时序结构数据帧AT24C02数据帧 编程实例 —— 按键控制数据大小&存储器写入读出 AT24C02介绍 …

全球海工供应链,中国建造!第十一届全球FPSOFLNGFSRU大会在上海隆重召开

10月30日-31日&#xff0c;全球海洋工程与高端装备领域的年度国际交流盛会——第十一届全球FPSO&FLNG&FSRU大会暨海上能源全产业链博览会在上海隆重召开&#xff0c;同期举办第七届亚洲海洋风能大会。本次大会暨博览会由上海船舶工业行业协会、上海市工业合作协会、决策…

Linux网络编程——网络字节序和IP地址详解

一、网络字节序 1、大端模式和小端模式 字节序是指多字节数据的存储顺序&#xff0c;在设计计算机系统的时候&#xff0c;有两种处理内存中数据的方法&#xff1a;大端格式、小端格式。 小端格式(Little-Endian)&#xff1a;将低位字节数据存储在低地址&#xff1b; 大端格式(…

解析低代码开发在企业数字化转型中的多重优势

在数字化转型的浪潮中&#xff0c;企业面临着前所未有的机遇和挑战。为了在竞争激烈的市场中脱颖而出&#xff0c;企业需要迅速且高效地构建和更新应用程序&#xff0c;以适应不断变化的业务需求。数字化转型已不再是企业的选择&#xff0c;而是关乎生存和发展的必由之路。在这…

JMeter项目实战

目录 一、流程&#xff1a; 1.接口测试流程&#xff1a; 2.测试数据准备&#xff1a; 3.接口功能测试&#xff1a; 4.自动化测试流程&#xff1a; 5.情景压力测试分析&#xff1a; 6.生成图形化测试报告&#xff1a; 一、流程&#xff1a; 1.接口测试流程&#xff1a; …

SHARE 100M A10风力发电机动态巡检

背景 随着碳中和、碳达峰“3060”目标的提出&#xff0c;“十四五”时期乃至本世纪中叶应对气候变化工作、绿色低碳发展和生态文明建设提出了更高要求。在时代建设的背景下&#xff0c;清洁能源行业蓬勃发展&#xff0c;传统静态巡检模式与高度依赖人力的风机巡检运维手段已经无…

数据分析:宏基因组DESeq2差异分析筛选差异物种

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理:计算步骤:结果:加载R包准备画图主题数据链接导入数据Differential abundance (No BP vs 2BP TA)构建`countData`矩阵过滤低丰度物种构建DESeq数据对象DESeq2差异分析画图Di…

Linux进程信号(信号的产生)

目录 什么是信号&#xff1f; 信号的产生 信号产生方式1&#xff1a;键盘 前台进程 后台进程 查看信号 signal系统调用 案例 理解进程记录信号 软件层面 硬件层面 信号产生方式2:指令 信号产生方式3:系统调用 kill系统调用 案例 其他产生信号的函数调用 1.rais…