作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想问一个关于压缩性能的问题这与hdf5文件的 block 大小有关。
我手头有 2 个 hdf5 文件,它们具有以下属性。它们都只包含一个数据集,称为“数据”。
文件A的“数据”:
文件B的“数据”:
文件 A 的大小:HDF5----19 MBCSV-----165 MB
文件 B 的大小:HDF5----60MBCSV-----165 MB
与 csv 文件相比,它们都显示出对存储数据的极大压缩。然而文件A的压缩率约为原始csv的10%,而B文件的数据量仅为原始csv的30%左右。
我尝试过不同的 block 大小以使文件 B 尽可能小,但似乎 30% 是最佳压缩率。我想问为什么文件A可以实现更大的压缩而文件B却不能。
如果文件B也能实现,那么chunk大小应该是多少?
是否有任何规则可以确定用于压缩目的的 HDF5 最佳 block 大小?
谢谢!
最佳答案
分块本身并不会真正影响压缩比,除非@Ümit 描述的方式。分块的作用是影响 I/O 性能。当压缩应用于 HDF5 数据集时,它会单独应用于整个 block 。这意味着当从数据集中的单个 block 读取数据时,必须解压缩整个 block - 可能涉及更多的 I/O,具体取决于缓存的大小、 block 的形状等。
您应该做的是确保 block 形状与您读取/写入数据的方式匹配。例如,如果您通常一次阅读一列,请将您的 block 分成列。 This is a good tutorial on chunking.
关于压缩性能与 hdf5 文件中的 block 大小相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786428/
我是一名优秀的程序员,十分优秀!