在python中获取新分配的内存大小



我正在寻找一种方法来获取新分配的python对象的内存大小,以监控代码块的内存使用情况。例如,对于时间监控,我们通常使用类似的代码

t = time.time()
# ... long operation
t_used = time.time() - t

有没有一种方法可以用内存做同样的东西(在Python 3中(?获取新对象的已分配内存大小(无内存操作无关紧要(。我已经找到了一个很好的解决方案作为孔雀鱼,但它不支持Python3

在研究了不同的解决方法后,我决定执行同一任务最简单易行的方法是使用gcpsutil:

def _get_value():
import gc, os, psutil
gc.collect()
return psutil.Process(os.getpid()).memory_info().rss / 1024 ** 2
t = _get_value()
# ... operation
t_used = _get_value() - t

它工作起来不是很干净,但速度很快,不需要大的内存分配或一些新的依赖

最新更新