我有大约200,000个文本文件放置在BZ2文件中。我遇到的问题是,当我扫描BZ2文件以提取所需的数据时,它的速度非常慢。它必须查看整个BZ2文件才能罚款我要寻找的单个文件。无论如何是否有加速?

另外,我考虑过可能在tar.bz2中组织文件,这样我就可以让它知道在哪里看。无论如何,是否有整理放入BZ2中的文件?

更多信息/编辑:我需要为每个TextFile查询压缩文件。是否有更好的压缩方法支持大量的文件并受到彻底压缩?

有帮助吗?

解决方案

您必须使用BZIP2吗?读是 文档, ,很明显,它并非旨在支持随机访问。也许您应该使用一种与您的要求更匹配的压缩格式。良好的旧ZIP格式支持随机访问,但当然可能会更糟。

其他提示

BZIP2在大块中压缩(我相信默认情况下为900 KIB)。一种可以大大加快焦油文件扫描的方法, 将降低压缩性能,将是单独压缩每个文件,然后将结果焦化。从本质上讲,这是zip-format文件(尽管使用ZLIB压缩而不是BZIP2)。但是,您可以轻松获取焦油索引,只需要解压缩您要寻找的特定文件即可。

我不认为大多数 tar 尽管您可以为您的特殊情况编写程序来组织此程序,但程序提供了很多以任何有意义的方式组织文件的能力(我知道Python有TAR写作的库,尽管我只使用了一次或两次)。但是,您仍然存在一个问题,必须在找到所需的内容之前对大多数数据进行解压缩。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top