我正在尝试设置性能测试来执行具有不同分块配置的netcdf文件的重复读取,以最终确定特定用例的最佳块大小。我遇到的一个问题是,当使用 xarray.open_dataset()读取文件时,即使缓存设置为False,它仍然以某种方式将缓存存储在内存中。我知道这是基于两个指标的情况:
以下是我运行的代码:
ds = xr.open_dataset("path/to/netcdf/file", engine='h5netcdf', cache=False)
lat_dim = 2160
lon_dim = 4320
time_dim = 46
read_chunk_size = 2160
data = np.empty((time_dim, lat_dim, lon_dim))
data[0:time_dim, 0:read_chunk_size, 0:read_chunk_size] = \
ds['value'][0:time_dim, 0:read_chunk_size, 0:read_chunk_size]
ds.close()
很明显,我对xarray缓存的理解非常少。因此,如果有人能够解释它实际上是如何工作的,以及随后如何在多次运行性能测试中利用它,我将非常感激。