Python tracemalloc的开销有多大?
我想在生产系统中记录Python脚本的当前内存使用情况。AWS有,但它们隐藏得非常好,我不知道如何在其他仪表盘/日志记录和修改系统中正确使用它们。另外,我也不确定日志峰值内存是否存在 Python脚本是生产系统。它在Docker容器中的AWS上运行,我遇到了以前的方法()的问题 似乎能给我想要的信息: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
# 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,这太糟糕了。所以,在生产系统中,你肯定不需要任何东西。谢谢分享!