2009-09-12 88 views
0

在我的应用程序中,我需要存储和传输包含许多重复字符串值(认为XML文档中的实体名称)的数据。我有两个提出的解决方案:字符串表编码与gzip压缩

  • A)创建一个字符串表被沿原稿存储,然后使用索引引用(文档主体中使用多字节编码),或
  • B)简单地使用gzip或类似的压缩算法压缩文档。

哪一个在速度和数据大小上可能会更好? (显然,这取决于实现的质量,但假设选项A动态地生成一个字符串数组并以某种合理方式对文档主体进行编码)。

另外,如果选项B,您是否推荐使用gzip以外的更合适的压缩方法?

回答

1

与CPU时间成本相比,传输/存储成本不是太高时,gzip只是一个很好的算法。您可以使用bzip2,7zip和特殊的自然语言以及各种PPM算法获得更好的压缩比。当然,不仅计算(以及静态与动态内存要求)与压缩比有关 - 不同的压缩格式允许不同程度的高效随机访问搜索,低延迟流解码以及压缩数据串联(例如cat a.gz b.gz | gunzip -cgunzip -c a.gz;gunzip -c b.gz

相同
1

这将取决于你的文章中未涉及的很多事情。

为什么不先尝试zip方法,因为它很容易实现。然后,如果它符合您的速度/压缩要求,则可以继续下一个功能。

2

简单地使用gzip肯定会是最简单也可能足够的。我建议尝试字符串表,然后gzip,看看你是否比gzip更好的压缩。