最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

python项目中的“填坑”记录

来源:博客园


【资料图】

基础

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

内存泄露分析

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

用memory_profiler对Python代码进行剖析pip install memory_profilermemory_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

关键词: 内存泄漏 数据结构 特定文件