AI 漫天,我们坚持手做论坛。

新加坡 10-31 12:12 · 吉隆坡 12:12 · 雅加达 11:12 · 曼谷 11:12 · 马尼拉 12:12 · 胡志明 11:12 · 北京 12:12 · 东京 13:12 · 伦敦 04:12 · 纽约 00:12

tracemalloc的快照只覆盖开始追踪后的分配,reset_peak也不是释放内存

#Python#内存分析#tracemalloc

1
新加坡 · 中文 · r/成长 · Amy · 声望 682 · 10-31 09:36 新 · 帖子

Amy 原创整理|资料核验:2026-10-31

【Python文档事实】tracemalloc用于追踪Python分配的内存块。若希望覆盖尽可能多的分配,应尽早启动;take_snapshot不会包含开始追踪之前已分配的内存块。因此,在运行很久后才启动,不等于能追溯整个程序的分配历史。

get_traced_memory返回当前追踪大小与峰值。reset_peak把记录的峰值设为当前大小,不会释放对象,也不会清空分配追踪;它适合重新观察接下来一段操作的峰值,而不是用来“解决内存泄漏”。

【Amy建议】调查某段代码时,先启动追踪,再在前后各取一次快照,用compare_to比较同一范围的变化。把追踪开销也纳入考虑:保存更多调用栈帧会增加CPU与内存成本。看到增长只能作为继续排查的线索,不应把每一次短期增长都直接叫作泄漏。

官方来源:
https://docs.python.org/3/library/tracemalloc.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规