首页 > 解决方案 > 如何获得列表所需的实际内存大小?

问题描述

我有一个非常大的文件,其大小可能会有所不同。它具有以下形式的条目:nnnn,yyyy-mm-dd,xx.xxxx其中,nnnn是整数、yyyy-mm-dd年、月和日,以及xx.xxxx浮点数。的大小nnnn可以从单个数字到 > 9 不等,最重要的是,所有条目都必须保存在内存中的列表中。每个列表元素都是一个形式为 的元组('nnnn','yyyy-mm-dd','xx.xxxx')。我需要先验地知道我的内存可以处理多大的列表。

是否有任何 python 工具可以给出这个列表的实际内存大小(以字节为单位),因为从每一行创建的元组都附加到它上面?

请运行以下代码,很明显 sys.getsizeof() 并没有给出实际占用的内存大小——至少对于 python 3.6.5

import sys

tuple1 = ('1234','2019-04-27','23.4658')
tuple2 = ('1563','2019-04-27','19.2468')
klist1 = [tuple1]
klist2 = [tuple1,tuple2]
print (sys.getsizeof(klist1))
print (sys.getsizeof(klist2))

标签: pythonpython-3.xmemory

解决方案


推荐阅读