在我的应用程序中,我需要存储和传输包含许多重复字符串值(认为XML文档中的实体名称)的数据。我有两个提出的解决方案:字符串表编码与gzip压缩
- A)创建一个字符串表被沿原稿存储,然后使用索引引用(文档主体中使用多字节编码),或
- B)简单地使用gzip或类似的压缩算法压缩文档。
哪一个在速度和数据大小上可能会更好? (显然,这取决于实现的质量,但假设选项A动态地生成一个字符串数组并以某种合理方式对文档主体进行编码)。
另外,如果选项B,您是否推荐使用gzip以外的更合适的压缩方法?
在我的应用程序中,我需要存储和传输包含许多重复字符串值(认为XML文档中的实体名称)的数据。我有两个提出的解决方案:字符串表编码与gzip压缩
哪一个在速度和数据大小上可能会更好? (显然,这取决于实现的质量,但假设选项A动态地生成一个字符串数组并以某种合理方式对文档主体进行编码)。
另外,如果选项B,您是否推荐使用gzip以外的更合适的压缩方法?
与CPU时间成本相比,传输/存储成本不是太高时,gzip只是一个很好的算法。您可以使用bzip2,7zip和特殊的自然语言以及各种PPM算法获得更好的压缩比。当然,不仅计算(以及静态与动态内存要求)与压缩比有关 - 不同的压缩格式允许不同程度的高效随机访问搜索,低延迟流解码以及压缩数据串联(例如cat a.gz b.gz | gunzip -c
与gunzip -c a.gz;gunzip -c b.gz
这将取决于你的文章中未涉及的很多事情。
为什么不先尝试zip方法,因为它很容易实现。然后,如果它符合您的速度/压缩要求,则可以继续下一个功能。
简单地使用gzip肯定会是最简单也可能足够的。我建议尝试字符串表,然后gzip,看看你是否比gzip更好的压缩。