在Python中连续加载大变量

时间:2016-02-04 00:02:30

标签: python performance memory ram hdf5

  

系统配置:每次运行前,Ubunut 14.04,RAM:128 GB,Intel Xeon E5-2630 v3 @ 2.40GHz×16,~5 GB / 128 GB。

我有两个HDF5文件,每个文件大小为22.5 GB。 python代码模板的格式为:

for i in range(10)
    h5f  = h5py.File(<FILE_PATH_1>,'r')
    data1 = h5f[<VARIABLE_NAME>][:] #22.5 GB size
    h5f  = h5py.File(<FILE_PATH_2>,'r')
    data2 = h5f[<VARIABLE_NAME>][:] #22.5 GB size

    # Do some processing

    del data1
    del data2

现在,加载data1大约需要10秒钟。 RAM高达~25 GB。当第二个变量开始加载时,它会快速填满内存,直到大约32 GB(尽快填充data1),然后变得非常慢(大约每秒0.2 GB)。所以加载data2大约需要100秒。如果我加载另一个文件,它同样很慢。

基本上,32 GB RAM填满后的任何加载都很慢。有什么方法可以解决这个问题吗?如果这需要以不同的方式编写HDF文件,我也对此持开放态度(显而易见的是,保持每个文件<16 GB,以便两个文件不会填充RAM直到32 GB)。

0 个答案:

没有答案