Probleme mit der Komprimierung in Javascript

9

Ich habe ein Objekt, das ich zu komprimieren versuche. Es ist von der Form

%Vor%

Die Arrays sind nicht länger als 10-15, extrem klein im Vergleich zu den Strings (sie sind html, ungefähr 170k lang). Die Streicher werden jedoch normalerweise wiederholt oder haben eine große Menge an Überlappung. Also sagt mir meine Intuition, dass der komprimierte Wert der Komprimierungswert von 1 String plus ein wenig mehr sein sollte.

I JSON.string dieses Objekt und versuche es zu komprimieren.

Die meisten Komprimierungsbibliotheken haben die Zeichenfolgen nur schlecht komprimiert, da der Server mir eine gzip-komprimierte Version von 77 kb sendet, ich weiß, dass sie mindestens so klein sein kann.

gzip-js

lzma-js

Hat aus den vielleicht 15 Bibliotheken, die ich ausprobiert habe, einen guten Job gemacht.

Das Problem ist, dass gzip-js in der Anzahl der Strings linear ist. Aber lzma macht das richtig, wo es nur in der Größe leicht zunimmt.

Lzma-js (level 2) ist leider sehr langsam (20s vs 1s gzip) beim Komprimieren von 7mbs (ca. 30 ~ Strings).

Gibt es da draußen eine komprimierte Bibliothek, die ungefähr so ​​schnell ist wie gzip, aber nicht linear auf Wiederholungszeichenfolgen skaliert?

    
Peter P 03.07.2015, 17:02
quelle

2 Antworten

1

Benutze die gzip-js lib mit hoher Komprimierungsstufe
Ссылка

%Vor%

Ich habe diesen Weg so klein wie möglich mit normaler Dauer gefunden

Und für den LZ-basierten Komprimierungsalgorithmus denke ich, dass lz-string schneller ist Überprüfen Sie dies in Ihrem Datenstichprobe
Ссылка

    
Ali.MD 13.07.2015 22:09
quelle
1

Pako war nützlich für mich, probier es aus:

Anstatt String-IDs zu verwenden, benutzen Sie byteArrays, wie es hier gemacht wird.

Holen Sie pako.js und Sie können ByteArray wie folgt dekomprimieren:

%Vor%

Laufendes Beispiel: Ссылка

Alternativ können Sie das Array auch vor dem Senden base64 codieren, da das Array beim Senden als JSON oder XML viel Aufwand in Anspruch nimmt. Entschlüsseln Sie ebenfalls:

%Vor%

Laufendes Beispiel: Ссылка

Weitere Funktionen finden Sie in der pako API-Dokumentation .

    
Alpha2k 14.07.2015 08:26
quelle

Tags und Links