【发布时间】:2010-10-05 12:02:42
【问题描述】:
我有许多大型(~100 Mb)文件,我经常处理这些文件。虽然我试图在处理过程中删除不需要的数据结构,但内存消耗有点太高了。我想知道是否有一种方法可以有效地处理大数据,例如:
def read(self, filename):
fc = read_100_mb_file(filename)
self.process(fc)
def process(self, content):
# do some processing of file content
是否存在重复的数据结构?使用 self.fc 这样的类范围属性不是更节省内存吗?
什么时候应该使用垃圾回收?我知道 gc 模块,但是例如在我 del fc 之后调用它吗?
更新
p.s. 100 Mb 本身不是问题。但是浮点转换,进一步处理显着增加了工作集和虚拟大小(我在 Windows 上)。
【问题讨论】:
-
文件中有什么?处理是做什么的?
-
逗号分隔的时间序列,我简化为一些可理解的汇总变量
-
你能不能说的更具体一些,可以发一个小例子吗?
-
scikits.timeseries.lib.moving_funcs 包含“移动窗口函数”,允许对任意大数据使用固定数量的内存(只是当前跨度)。
标签: python data-structures memory-leaks garbage-collection