Pet*_*r P 9 javascript compression gzip lzma
我有一个我试图压缩的对象.它的形式
[
{
array
string
},
{
array
string
},
...
]
Run Code Online (Sandbox Code Playgroud)
这些数组的长度不超过10-15,与字符串相比非常小(它们是html,长度大约为170k).虽然字符串通常是重复的,或者有大量的重叠.所以我的直觉告诉我压缩值应该是1个字符串的压缩值,加上一点额外的.
我JSON.stringify这个对象,并尝试压缩.
大多数压缩库在压缩字符串方面表现不佳,因为服务器向我发送了一个77kb的gzip压缩版本,我知道它至少可以这么小.
用gzip JS
LZMA-JS
在我尝试过的15个库中做得很好.
问题是gzip-js在字符串数量上是线性的.但是lzma正确地做到了这一点,它只是略微增加了尺寸.
不幸的是,当压缩7mb(约30~字符串)时,Lzma-js(2级)非常慢(20s vs 1s gzip).
有没有一个compressopn库,它大致和gzip一样快,但不能在重复字符串上线性缩放?
使用高压缩级别的 gzip-js 库
https://github.com/beatgammit/gzip-js
var gzip = require('gzip-js'),
options = {
level: 9,
name: 'hello-world.txt',
timestamp: parseInt(Date.now() / 1000, 10)
};
// out will be a JavaScript Array of bytes
var out = gzip.zip('Hello world', options);
Run Code Online (Sandbox Code Playgroud)
我发现这种方式在正常持续时间内尽可能小
对于基于 LZ 的压缩算法,我认为 lz-string 更快,
请在您的数据样本上检查这一点
https://github.com/pieroxy/lz-string
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |