分析python生成器中的内存使用情况

时间:2015-07-27 20:31:09

标签: python-3.x memory profiling

我正在试图弄清楚我的内存在python 3中的生成器函数中的使用位置。我已经尝试过memprof和memory_profiler,并且都无法向我提供有关生成器的信息。

如何确定我在生成器函数中分配的内存的位置和数量?

1 个答案:

答案 0 :(得分:0)

以下代码段应该可以在python3中使用。如果用列表替换生成器函数,您将看到内存分配的巨大差异。

from memory_profiler import memory_usage

print('Memory usage after : {}MB'.format(memory_usage()))

def obj_generator(num_objects):
    for i in xrange(num_objects):
        new_obj = {
            'id' : i,
        }
        yield new_obj

objects = obj_generator(1000000)

print('Memory usage before : {}MB'.format(memory_usage()))