【发布时间】:2014-11-05 01:42:00
【问题描述】:
假设您有大量流行语言(Java、C、C++ 等)的源代码(如 50GB+)。
项目需求是:
压缩源代码以减少磁盘使用和磁盘 I/O
以这样的方式对其进行索引,即可以从压缩源中提取特定的源文件,而无需解压缩整个文件
整个代码库的压缩时间不重要
搜索和检索时间(以及搜索和检索时的内存使用)很重要
此 SO 答案包含潜在答案:What are the lesser known but useful data structures?
但是,这只是潜在的列表 - 我不知道这些结构实际上如何根据上面列出的要求进行评估。
问题:根据上述要求,哪些数据结构(及其实现)可以很好地执行?
【问题讨论】:
-
在我看来,任何旧的 ZIP 存档都可以。
-
@JoachimPileborg 我可以在不解压缩整个 ZIP 的情况下搜索 LZ 压缩文本的内容以查找字符串吗?
-
我会检查开源 Source Control 程序(如 SVN et simili)如何处理这个问题,我想他们有相同的要求并且很多人都在努力解决这些问题。 ..
-
是的,ZIP 存档中的每个文件都经过压缩(或不压缩)并单独存储,因此您可以快速轻松地从存档中提取单个文件。 Read more about ZIP archives。有适用于所有主要操作系统的工具和库来处理 ZIP 档案。
标签: c++ data-structures indexing compression information-retrieval