【发布时间】:2013-06-18 03:46:38
【问题描述】:
我有一个包含 6000 个元素的数据结构,对于每个元素,我需要存储 7 位信息。如果我天真地将它存储为一个包含 6000 个元素的数组,其中填充了数字,它会占用大约 22 KB。我正在尝试减小页面的大小——存储 6000*7 位信息的最佳方式是什么(应该在 5 KB 左右)。我想要一个像数据结构一样的“比特流”。我考虑过将其编码为字符串甚至图像,但不确定。我没有编码为字符串的原因是因为我无法从数学上保证没有一个字符不是不可打印的 ASCII 字符之一(例如 ASCII 1-25)
【问题讨论】:
-
将位移到不包括 0 的某个范围的字符串可能是最简单的解决方案(类似于 charFromCode[value +32] 以获取安全范围内的所有值) - 轻松访问每个元素...
-
可以看到this
-
@Ishank - 我实际上尝试了指向该页面的库(pieroxy.net/blog/pages/lz-string/index.html),有趣的是它是一个非常糟糕的压缩库(作者自己承认,如果你有它会增加输出的大小超过 750 个字符,在我的情况下是正确的)。该解决方案适用于压缩要存储在本地存储中的小字符串。任何其他客户端压缩方案都可能有效,但我正在寻找纯粹基于 bithacks 的东西。
-
为什么要减少呢?在浏览器中节省网络带宽或内存占用,或用于存储(例如 localStorage)?
-
您是否启用了服务器压缩?我会认为 gzip 会很好地压缩一个简单的数组? 22k 是观察到的网络效应,还是只是服务器文件大小的增加?
标签: javascript performance bit-manipulation steganography page-size