我有一些大的(~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
吗?
更新
ps 100 Mb本身不是问题.但浮动转换,进一步处理显着增加工作集和虚拟大小(我在Windows上).
我建议看看David Beazley在Python中使用生成器的演示.这种技术允许您快速处理大量数据并进行复杂处理,而不会耗尽内存使用量.IMO,诀窍是尽可能高效地在内存中保存大量数据; 诀窍是避免同时将大量数据加载到内存中.