【发布时间】:2014-03-30 16:23:42
【问题描述】:
我有一个程序,它通过标准输入导入文本文件并将这些行聚合到字典中。但是输入文件非常大(1Tb 订单),我没有足够的空间将整个字典存储在内存中(在 64Gb ram 机器上运行)。目前 Iv 有一个非常简单的子句,一旦字典达到一定长度(在本例中为 100)并清除内存,它就会输出字典。然后可以在以后汇总输出。
所以我想:一旦内存已满,就输出字典。管理这个的最好方法是什么?有没有一个函数可以告诉我当前的内存使用情况?继续检查成本高吗?我是否使用了正确的策略?
import sys
X_dic = dict()
# Used to print the dictionary in required format
def print_dic(dic):
for key, value in dic.iteritems():
print "{0}\t{1}".format(key, value)
for line in sys.stdin:
value, key = line.strip().split(",")
if (not key in X_dic):
X_dic[key] = []
X_dic[key].append(value)
# Limit size of dic.
if( len(X_dic) == 100):
print_dic(X_dic) # Print and clear dictionary
X_dic = dict()
# Now output
print_dic(X_dic)
【问题讨论】:
标签: python memory-management dictionary