Tôi có một đối tượng mà tôi đang cố gắng nén. Nó có dạngSự cố với nén trong javascript
[
{
array
string
},
{
array
string
},
...
]
Các mảng không dài quá 10-15, cực nhỏ so với các chuỗi (chúng là html, dài khoảng 170k). Các chuỗi mặc dù thường được lặp lại, hoặc có một lượng lớn các chồng chéo. Vì vậy, trực giác của tôi cho tôi biết giá trị nén phải là giá trị nén của 1 chuỗi, cộng thêm một chút.
Tôi JSON.đăng ký đối tượng này và cố nén.
Hầu hết các thư viện nén đều làm việc sai khi nén các chuỗi, vì máy chủ gửi cho tôi phiên bản nén của gzip 77kb, tôi biết nó có thể ít nhất là nhỏ.
gzip-js
LZMA-js
Đã làm một công việc tốt ra khỏi lẽ 15 thư viện tôi đã cố gắng.
Vấn đề là gzip-js là tuyến tính trong số chuỗi. Nhưng lzma làm điều này một cách chính xác, nơi nó chỉ tăng kích thước một chút.
Lzma-js (cấp 2) rất chậm (20s so với 1s gzip) khi nén 7mbs (khoảng 30 ~ chuỗi).
Có thư viện nén ngoài đó, nhanh bằng gzip nhưng không quy mô tuyến tính trên các chuỗi lặp lại không?
Bạn có thể liệt kê những người đã làm một công việc tồi tệ mà bạn đã thử không?Nó chắc chắn sẽ tiết kiệm thời gian thiết lập lại của chúng tôi thời gian để không phải làm công việc tương tự bạn đã đi qua. –
Bạn đã xem câu trả lời cho http://stackoverflow.com/questions/4570333/string-compression-in-javascript? Các câu trả lời được đánh giá hàng đầu liên kết đến trang này http://pieroxy.net/blog/pages/lz-string/index.html, tham chiếu đến một số lib nén lz –
Nếu bạn có thời gian, bạn có thể chuyển đổi các bit thành hình ảnh (mọi 3 bit dưới dạng bixel) và lưu nó dưới dạng hình ảnh lossless png, hiệu suất tốt nhất với nén rất tốt –