我正在寻找具有以下能力的压缩库/格式:
上下文:我正在编写一个C ++应用程序,用于侦听传入的数据,对其进行规范化,然后需要将规范化的输出保存到磁盘。当我手动对文件运行gzip时,数据已经很好地压缩了。但是,传入数据的数量可能很大,我想在运行中进行压缩。文件中的每个条目都有一个与之关联的时间戳,我可能只对时间X和时间Y之间的数据块感兴趣,所以要快速找到我希望能够二进制搜索的块。如果可能的话,甚至反向迭代。是否有任何特定的压缩库/格式特别适合我的项目?我发现满足#1的库,但通常#2或#3是否有效。
答案 0 :(得分:1)
您可以一次压缩几个块,以便可以单独解压缩它们,然后将(未压缩但很小的)索引保存到压缩数据中每个块块的开头。这将允许几乎随机访问块并仍然按时间顺序保持它们。对此的限制是单独压缩每个块,尽管这可能会损害您的压缩比。