我正在试图弄清楚我的内存在python 3中的生成器函数中的使用位置。我已经尝试过memprof和memory_profiler,并且都无法向我提供有关生成器的信息。
如何确定我在生成器函数中分配的内存的位置和数量?
答案 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()))