我有一个名为db的大型leveldb数据库。
tot=0
i=0
for key,value in db.RangeIter():
tot=sys.getsizeof(key)+sys.getsizeof(value)
i=i+1
print(f'total rows: {i}')
print(f'total size: {tot}')
给出
total rows: 119113
total size: 143
这真的很奇怪。
所以我写了这个:
keyTot=0
valTot=0
for key,value in db.RangeIter():
keyTot += len(key)
valTot += len(value)
print(f'Total key size: {keyTot} Total value size: {valTot} Total: {keyTot+valTot}')
这就产生了
Total key size: 1404729 Total value size: 452897532 Total: 454302261
那么,当我把钥匙递给它时,系统的测量尺寸是多少呢?在迭代119113行之后,它是如何得出这么小的数字的?
您认为这会保持的运行总数吗?
tot=sys.getsizeof(key)+sys.getsizeof(value)
这是而不是,您正在覆盖每次迭代上的tot