我正在将大量小型数据集写入 HDF5 文件,生成的文件大小大约是我所输入的数据的幼稚列表所期望的 10 倍。我的数据按层次结构组织如下:
group 0
-> subgroup 0
-> dataset (dimensions: 100 x 4, datatype: float)
-> dataset (dimensions: 100, datatype: float)
-> subgroup 1
-> dataset (dimensions: 100 x 4, datatype: float)
-> dataset (dimensions: 100, datatype: float)
...
group 1
...
每个子组应占用 500 * 4 Bytes = 2000 Bytes,忽略开销。我不会在数据旁边存储任何属性。然而,在测试中,我发现每个子组占用大约 4 kB,或者大约是我预期的两倍。我知道有一些开销,但它来自哪里,我该如何减少它?是在代表组结构吗?
更多信息:如果我将每个子组中两个数据集的维度增加到 1000 x 4 和 1000,那么每个子组占用大约 22,250 字节,而不是我预期的 20,000 字节。这意味着每个子组的开销为 2.2 kB,并且与我使用较小数据集大小得到的结果一致。有没有办法减少这种开销?