在我的应用程序中,我需要存储和传输包含许多重复字符串值的数据(想想XML文档中的实体名称)。我有两个建议的解决方案:
哪一个在速度和数据大小方面可能会表现更好? (显然,这取决于实现的质量,但假设选项A动态地构建字符串数组并以合理的方式对文档主体进行编码)。
此外,如果选项B,您是否建议使用除gzip之外的更合适的压缩方法?
答案 0 :(得分:2)
简单地使用gzip肯定是最简单的,也可能是足够的。我建议尝试使用字符串表,然后再压缩它,看看你是否比单独使用gzip获得更好的压缩效果。
答案 1 :(得分:1)
这将取决于你帖子中没有解决的很多事情。
为什么不首先尝试使用zip方法,因为它易于实现。然后,如果它符合您的速度/压缩要求,您就可以继续使用下一个功能。
答案 2 :(得分:1)
当传输/存储成本与CPU时间成本相比不太高时,gzip只是一个很好的算法。您可以使用bzip2,7zip获得更好的压缩率,特别是自然语言,各种PPM算法。
当然,重要的不仅是计算(和静态与动态内存需求)与压缩比的关系 - 不同的压缩格式允许不同程度的有效随机访问搜索,低延迟流解码和压缩数据的连接(例如cat a.gz b.gz | gunzip -c
与gunzip -c a.gz;gunzip -c b.gz