HDF5: 读写速度与文件的大小

HDF5是一种优秀的文件格式,特别是对于大型的文件,是一个很好的选择。
任何事情都是一个平衡,当源文件是.csv文件时,你转为HDF5文件,你的目标是什么,要读(写)速度,还是HDF5文件的大小?

一、效率与文件的大小两者不可兼得
HDF5文件,如果不采用压缩的方式,格式会比源文件大不小,以CSV为例,可能会增大不少。但是在没有压缩的情况下,速度是最佳的。

如果你不仅需要速度,而且还需要控制文件的大小,这时,你可以选择压缩的方式,常用的有gzip,lzf等。这两者差异不太大,总体上差不多。lzf方式可能稍好一些,可能不同的环境下,得到的情况有所不同。

在控制文件大小的同时,这个效率的损失有多大?

我有一个CSV文件夹,CSV总大小约59.3M =>
gzip compress-level 2 =>8.5 M 读速度:0.5s
gzip compress-level 6 =>7.3M 读速度: 0.7s (compress level 0-9值)
lzf =>13M 读速度:0.4s (无compress level)

不压缩的情况是多少 =>76M 读速度:0.15s

我这里不是用SSD,如果用SSD的话,速度可能还会快不少。

二、场景的选择

有些情况下,存储资源紧张,有时侯需要更快的读取效率,具体要看具体场景需要。

发布了285 篇原创文章 · 获赞 341 · 访问量 169万+

猜你喜欢

转载自blog.csdn.net/wowotuo/article/details/103075037
今日推荐