我可以使用哪种数据格式分发大量小文件?
With which data format can I distribute a big number of small files?
我即将发布机器学习数据集。该数据集包含大约 170,000 个文件(32px x 32px 的 png 图像)。我首先想通过 zip 存档 (57.2MB) 共享它们。但是,提取这些文件需要很长时间(超过 15 分钟 - 我不确定我是什么时候开始的)。
是否有更好的格式来共享这些文件?
尝试 .tar.xz - 比 .tar.gz
更好的压缩率但提取速度稍慢
我刚刚做了一些基准测试:
实验/基准
我使用 dtrx
提取以下内容,并使用 time dtrx filename
获取时间。
Format File size Time to extract
.7z 27.7 MB > 1h
.tar.bz2 29.1 MB 7.18s
.tar.lzma 29.3 MB 6.43s
.xz 29.3 MB 6.56s
.tar.gz 33.3 MB 6.56s
.zip 57.2 MB > 30min
.jar 70.8 MB 5.64s
.tar 177.9 MB 5.40s
有意思。提取的内容有 47 MB 大。为什么 .tar
超过其内容大小的 3 倍?
总之。我认为 tar.bz2
可能是个不错的选择。
只需在最低压缩级别使用 tar.gz(只是为了去掉文件之间的 tar 零)。 png 文件已经被压缩,因此没有必要进一步压缩它们。 (尽管在将每个 png 文件放入发行版之前,您可以使用各种工具尝试最小化它们的大小。)
我即将发布机器学习数据集。该数据集包含大约 170,000 个文件(32px x 32px 的 png 图像)。我首先想通过 zip 存档 (57.2MB) 共享它们。但是,提取这些文件需要很长时间(超过 15 分钟 - 我不确定我是什么时候开始的)。
是否有更好的格式来共享这些文件?
尝试 .tar.xz - 比 .tar.gz
更好的压缩率但提取速度稍慢我刚刚做了一些基准测试:
实验/基准
我使用 dtrx
提取以下内容,并使用 time dtrx filename
获取时间。
Format File size Time to extract
.7z 27.7 MB > 1h
.tar.bz2 29.1 MB 7.18s
.tar.lzma 29.3 MB 6.43s
.xz 29.3 MB 6.56s
.tar.gz 33.3 MB 6.56s
.zip 57.2 MB > 30min
.jar 70.8 MB 5.64s
.tar 177.9 MB 5.40s
有意思。提取的内容有 47 MB 大。为什么 .tar
超过其内容大小的 3 倍?
总之。我认为 tar.bz2
可能是个不错的选择。
只需在最低压缩级别使用 tar.gz(只是为了去掉文件之间的 tar 零)。 png 文件已经被压缩,因此没有必要进一步压缩它们。 (尽管在将每个 png 文件放入发行版之前,您可以使用各种工具尝试最小化它们的大小。)