如何在有限的RAM中处理大量数据

时间:2017-03-08 15:48:51

标签: python memory-management

我必须处理大量数据(大约4000张图像的各个图层的特征图),在某些点之后大小超过50 GB。处理涉及一些计算,之后将大约2MB的文件写入HDD。

由于免费ram大约为40GB,我的进程在某些时候崩溃了。任何人都可以建议一种更好的方法来划分或处理这个50GB的数据,以便可以在可用的ram内进行计算。对于例如一些内存压缩方法

我只是想找到解决这个问题的可能方法的提示。

由于

1 个答案:

答案 0 :(得分:0)

这个问题让我想起了80年代初期。内存过去很昂贵,我们发明了交换。操作系统的(高级部分)会看到比实际存在的内存更多的内存,并且页面会复制到磁盘上。当需要一个时,另一个被换掉,页面被复制回内存。表演很糟糕,但至少它有效。

您的问题相当广泛,但经验法则表明,如果您可以批量处理数据,那么明确加载批量数据会更有效率,但如果算法过于复杂或需要对任何数据进行操作那一刻,让交换照顾它。

所以添加一个远远大于您认为需要的内存的交换文件(使用给定的大小,我会尝试100或200 GB),在离开办公室之前开始处理,并且您可以在第二天早上获得结果