首页 > 编程语言 >python项目中的“填坑”记录

python项目中的“填坑”记录

时间:2023-02-17 21:56:34浏览次数:57  
标签:记录 python profiler Python 填坑 内存 memory mprof

基础

Python是动态类型的语言,Python中任何事物皆对象,如变量、数据结构、函数、类、模块等等,在创建一个对象的时候就会占用内存,Python中对象和引用是分离。Python的内存管理是由Python进程的私有堆空间管理的,所有的Python对象都存储在进程的私有对空间中。
在创建一个对象的时候,分配堆空间内存是由Python的内存管理模块实现的,无需用户单独申请内存,核心API会提供一些方位该模块的方法。Python对堆内存的回收,是指Python自有的垃圾回收机制,以回收并释放没有被使用的内存。

内存泄露分析

Python 内存泄漏问题排查
填坑总结:python内存泄漏排查小技巧
排查python内存泄露中几个工具的使用
python3 内存泄露定位工具

用memory_profiler对Python代码进行剖析
pip install memory_profiler
memory_profiler是用Python编写的,可以用pip安装。该软件包将包括库,以及一些命令行实用程序。以跨平台的方式访问进程信息,因此它可以在Windows、Mac和Linux上使用。
为了提供逐行输出的结果,memory_profiler 需要用@profile 装饰器来装饰一个方法(装饰function,而不是class?)。
使用@profile(precision=4)装饰时,统计内存精确到小数点后四位。
配置精度,将结果输出到日志,装饰器如下:
@profile(precision=4, stream=open("memory_profiler.log", "w+"))
更多应用设置可以参考Python内存分析工具:memory_profiler

也可以用 mprof run test.py 生成该项目运行的内存监控.dat文件,使用 mprof plot 画出最新dat文件内容,或者mprof plot name.dat画出特定文件内容。
更多关于mprof命令,可参考Python代码优化工具——memory_profiler

python 性能分析(时间,空间)之 line_profiler 模块 ,memory_profiler的使用

不要在Python 3中缓存Exception对象

压测

主要是基于Linux系统。TODO。

Python压力测试工具——Locust
【Linux】【压测】关于python实现性能自动化工具之Locust

标签:记录,python,profiler,Python,填坑,内存,memory,mprof
From: https://www.cnblogs.com/ytxwzqin/p/17131577.html

相关文章

  • python-json解析
    json函数:json.dumps:将python对象解析成jsonjson.loads:将已编码的JSON字符串解码为Python对象json.dumps使用将数组转为json格式数据importjsonif__name__=='__main_......
  • python 的 match case 用法详解
    Python3.10实现的match功能是其他开发语言中传统的switch的超集,它不仅仅是switch,可以实现更为复杂的功能。模式匹配大大增加了控制流的清晰度和表达能力。背景......
  • docker学习记录
    系统环境NAME="Ubuntu"VERSION="18.04.2LTS(BionicBeaver)"感受惊为天人,这玩意真的好用在我目前来看,docker就是一个轻量化的虚拟机,用多了vmware,用这样迅捷的虚拟......
  • 记录一个有意思c++现象
      即使类没有带参初始化函数依然可以给对象数组赋值,而且有多个成员时是每个对象每个成员逐个赋值的。====================  也可以这样两层赋值。============......
  • python的下载安装与使用
    一、python解释器版本创作者:龟叔1.1python1.X(可忽略)1.2python2.xpython2.x的最高版本是2.7版本,现在仍然有不少企业老项目在使用2.7版本1.3python3.x目前比较稳定的版......
  • SpringBoot学习记录(1)——@Autowired在集合上的作用
    publicclassSmsHandlerextendsBaseHandlerimplementsHandler{@AutowiredprivateMap<String,SmsScript>smsScripts;//......}例如如上,一个......
  • Python有以下几个方面的优势
    Python是一种非常流行和强大的编程语言,它有以下几个方面的优势:1、易学习,易阅读:Python语法简洁清晰,代码风格优雅,类似于英语。Python适合编程初学者入门,也适合经验丰富的开发......
  • Python3默认字符编码的问题
    输出报错UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:ordinalnotinrange(128)>>>importsys>>>sys.stdout.encoding'ANSI_X3.4-1......
  • 记录k8s进行持续挂卷,但是pod并没有running的问题
    在进行持续挂卷,必须配置pv和pvc但是配置了mysql之后pod并没有running,我的解决步骤一、查看kubectldescribepodmysql-72bl7 Events:FirstSeenLastSeenCo......
  • 通过Windows定时任务执行Python脚本给钉钉群发送消息
    前提:已经存在有成功发送钉钉群机器人消息的python脚本,参考上一篇Python调用钉钉群机器人发送群消息Windows定时任务设置1、本机是Win7系统:控制面板->系统和安全->管理工......