Ich postete einige Code, um JSON (Arrays spezifisch) effizienter auf Code Review zu speichern, aber es begann, StackOverflow-Typ Antworten anzulocken, also dachte ich, ich würde hier posten, um den Zweck nicht den Code zu debattieren.Condense JSON für Bandbreiteneffizienz
JSON wird schnell zum Formatierungsstandard der Wahl für schnelle, bequeme und zuverlässige Kommunikation zwischen Maschinen. Es ist flexibel und weit verbreitet, aber es hat einige Nachteile, wenn es um Datennutzlasten wie die aus Datenbanken geht. Ein JSON-Payload aus einer Datenbanktabelle namens Früchte könnte wie folgt aussehen:
[{"id":1,"abbreviation":"appl","name":"Apple"},
{"id":2,"abbreviation":"pear","name":"Pear"},
{"id":3,"abbreviation":"bana","name":"Banana"},
{"id":4,"abbreviation":"bkby","name":"Blackberry"},
{"id":5,"abbreviation":"strw","name":"Stawberry"},
{"id":5,"abbreviation":"pech","name":"Peach"},
{"id":6,"abbreviation":"plum","name":"Plum"}]
Die meisten Daten in dieser Nutzlast wird wiederholt, weil der Array-Schlüssel. Dies ist aus einer Bandbreiteperspektive sehr ineffizient und mühsam. Ich habe einen Weg gefunden, um die JSON zu komprimieren, indem die Schlüssel zu entfernen und sie in der ersten Reihe des Array wie folgt setzen:
C[["id","abbreviation","name"],
[1,"appl","Apple"],
[2,"pear","Pear"],
[3,"bana","Banana"],
[4,"bkby","Blackberry"],
[5,"strw","Stawberry"],
[5,"pech","Peach"],
[6,"plum","Plum"]]
Ich weiß, dass gzip typischerweise die Bandbreite für eine erforderliche Zeit zu reduzieren verwendet wird Nutzlast, aber ich dachte, warum nicht beides tun? Gzip ist verlustfrei und bedeutet, dass es nur so viel komprimieren kann, wie es alles wiederherstellen muss. Bessere Speichereffizienz kombiniert mit gzip mit den besten Ergebnissen.
Meine Frage ist, was die Vor- und Nachteile zu diesem Vorschlag sind. Es wurde vorgeschlagen, dass sich der Verarbeitungsaufwand dafür nicht lohnt. Ich bin der Meinung, dass heutzutage die Bandbreite viel teurer ist als die Verarbeitungsleistung. Liege ich falsch? Fehle ich etwas? Wenn Sie Ihre Nutzlast um mehr als die Hälfte reduzieren können, ist es das nicht wert?
Es klingt wie Sie sind eine Art von Linux-System. Wenn ja, haben sie Zip für Linux und Zip hat mehrere Modi der Komprimierung, wenn Sie dorthin gehen wollen. [Zip für Linux] (http://www.linuxfromscratch.org/blfs/view/svn/general/zip.html). [7 zip hat auch] (http://www.7-zip.org/download.html) eine sehr gute Kompressionsrate. Und sie haben Quell- und Binärdateien für Linux. – Bulrush