网站建设策划书模板下载,游戏网站网页设计,网站成功上线报道,北京市建设局网站首页tracemalloc 模块是一个用于对 python 已申请的内存块进行debug的工具。它能提供以下信息: 定位对象分配内存的位置 按文件、按行统计python的内存块分配情况: 总大小、块的数量以及块平均大小。 对比两个内存快照的差异#xff0c;以便排查内存泄漏
显示前10项
显示内存…tracemalloc 模块是一个用于对 python 已申请的内存块进行debug的工具。它能提供以下信息: 定位对象分配内存的位置 按文件、按行统计python的内存块分配情况: 总大小、块的数量以及块平均大小。 对比两个内存快照的差异以便排查内存泄漏
显示前10项
显示内存分配最多的10个文件
import tracemalloctracemalloc.start()
# --- 业务代码 start ---
n 10000000
s 0
for i in range(1, n):s * i
# --- 业务代码 end ---
snapshot tracemalloc.take_snapshot() # 内存摄像
top_stats snapshot.statistics(lineno) # 内存占用数据获取print([Top 10])
for stat in top_stats[:10]: # 打印占用内存最大的10个子进程print(stat)# [Top 10]
# D:/MyPython/tracemalloc/demo.py:5: size576 B, count1, average576 B
# D:/MyPython/tracemalloc/demo.py:7: size28 B, count1, average28 BTOP1代码第五行占用内存大小576B 计算差异
获取两个快照并显示差异
import tracemalloctracemalloc.start()
snapshot0 tracemalloc.take_snapshot() # 第一张快照
# --- 业务代码 start ---
n 10000000
s 0
for i in range(1, n):s * i
# --- 业务代码 end ---
snapshot1 tracemalloc.take_snapshot() # 第二张快照
top_stats snapshot1.compare_to(snapshot0, lineno) # 快照对比print([Top 10 differences])
for stat in top_stats[:10]:print(stat)# [Top 10 differences]
# D:/MyPython/tracemalloc/demo.py:27: size576 B (576 B), count1 (1), average576 B
# D:\Program Files\anaconda3\lib\tracemalloc.py:397: size88 B (88 B), count2 (2), average44 B
# D:\Program Files\anaconda3\lib\tracemalloc.py:534: size48 B (48 B), count1 (1), average48 B
# D:\Program Files\anaconda3\lib\tracemalloc.py:291: size40 B (40 B), count1 (1), average40 B
# D:/MyPython/tracemalloc/demo.py:31: size28 B (28 B), count1 (1), average28 BTOP1代码第27行占用内存大小增加了576B 参考
tracemalloc --- 跟踪内存分配 — Python 3.7.13 文档 https://docs.python.org/zh-cn/3.7/library/tracemalloc.html#module-tracemalloc
python3使用tracemalloc追踪mmap内存变化 - DECHIN - 博客园 https://www.cnblogs.com/dechinphy/p/mmap.html