【发布时间】:2016-05-18 22:17:59
【问题描述】:
我有一个很大的 lmdb,大约 800K 图像。 我只想一一阅读条目。 我的代码很简单,看起来像这样:
with env.begin() as txn:
cursor = txn.cursor()
for key, value in cursor:
print(key)
但是在阅读了大约 70000 个条目后,它会耗尽内存(~10GB)。 我不知道为什么。 我试着像下面那样做,但没有用。
for r in range(0,env.stat()['entries']):
if r%10000==0:
if r!=0:
txn.commit()
cur.close()
txn=env.begin()
cur = txn.cursor()
print("Change Change Change "+ str(r))
sys.stdout.flush()
if r==0:
cur.first()
else:
cur.set_range(key)
cur.next()
key, value = cur.item()
有什么建议吗?
【问题讨论】: