Python tracemalloc的开销有多大?

Python tracemalloc的开销有多大?,python,memory,tracemalloc,Python,Memory,Tracemalloc,我想在生产系统中记录Python脚本的当前内存使用情况。AWS有,但它们隐藏得非常好,我不知道如何在其他仪表盘/日志记录和修改系统中正确使用它们。另外,我也不确定日志峰值内存是否存在 Python脚本是生产系统。它在Docker容器中的AWS上运行,我遇到了以前的方法()的问题 似乎能给我想要的信息: # At the start of the script import tracemalloc tracemalloc.start() # script running... # At the

我想在生产系统中记录Python脚本的当前内存使用情况。AWS有,但它们隐藏得非常好,我不知道如何在其他仪表盘/日志记录和修改系统中正确使用它们。另外,我也不确定日志峰值内存是否存在

Python脚本是生产系统。它在Docker容器中的AWS上运行,我遇到了以前的方法()的问题

似乎能给我想要的信息:

# At the start of the script
import tracemalloc
tracemalloc.start()

# script running...

# At the end
current, peak = tracemalloc.get_traced_memory()
logger.info(f"Current memory usage is {current / 10**6} MB")
logger.info(f"Peak memory usage was {peak / 10**6} MB")
tracemalloc.stop()
但是,该文件规定:

tracemalloc模块是一个调试工具

那么,围绕生产代码进行包装是不是一个坏主意?费用是多少?有没有其他理由不在生产中使用


(我非常清楚代码的哪些部分需要最多内存,以及在哪里达到最大内存。我想监控这一部分(或者更确切地说,监控这几个对象/几行代码的大小)。tracemalloc的替代方法似乎是使用一些东西)

我一直在尝试回答同样的问题。我找到的最好的答案是


根据一个简单的实验,tracemalloc的内存使用率提高了3-4倍。

Oh wow,这太糟糕了。所以,在生产系统中,你肯定不需要任何东西。谢谢分享!