Tracemalloc
Python 3.4里引入的一个专门用来分析内存状态的模块。tracemalloc
这里我们只需要记住几个命令就行:
import tracemalloc
tracemalloc.start() # 开始监控内存
snapshot = tracemalloc.take_snapshot() # 记录内存快照
top_stats = snapshot.statistics('lineno') #按lineno分析内存快照状态
for stat in top_stats[:10]: # 打印前10的内存占用情况
print(stat)
snapshot_2 = tracemalloc.take_snapshot() # 记录新的内存快照
top_stats = snapshot_2.compare_to(snapshot, 'lineno') # 对比两个内存快照的信息
for stat in top_stats[:10]: # 打印前10的内存占用情况,这里会展示出两个快照间的数量变化
print(stat)
tracemalloc.stop()
GC
这里使用的是Python自带的gc模块。gc
Python的内存回收是引用计数回收,因此,当一个对象的引用计数降为0
时,就会被回收。
我们使用gc
模块能够分析一个对象的引用信息,便于我们查找多余的引用,或使用weakref
弱引用去优化代码。
gc
模块提供了两个很好用的方法:
* gc.get_referrers(*objs)
:返回一个列表,内容是所有直接引用了任意一个objs
的对象
* gc.get_referents(*objs)
:返回一个列表,内容是objs
所引用的所有对象
FROM :rickyhao.com | rickyhao.com
概述:Fastjson是阿里巴巴公司开源的一款json解析器,它可以解析 JSON 格式的字符串, 支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 Fastjson1.2.47反序列化漏洞: 1…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论