Große JSON-Dateien parsen, rendern und streamen
Parsen ist oft nicht der Engpass; Rendern und Kopieren sind es. Optimieren Sie entlang der vier Schichten „parsen → durchlaufen → rendern → transportieren“, damit Ihr Aufwand nicht verpufft.
Eine JSON-Datei mit zig Megabyte kann den Hauptthread einfrieren, und sorgfältig konstruiertes JSON kann einen Dienst durchschlagen; diese Kategorie behandelt Durchsatz und Verteidigung.
6 ArtikelParsen ist oft nicht der Engpass; Rendern und Kopieren sind es. Optimieren Sie entlang der vier Schichten „parsen → durchlaufen → rendern → transportieren“, damit Ihr Aufwand nicht verpufft.
JSON.parse selbst ist sicher; die Gefahr ist, was danach passiert: tiefes Zusammenführen, Zuweisung nach Pfad, Inlining in HTML, unbegrenzte Tiefe und Größe.
Minifizieren spart 30–50 % des rohen JSON, aber gzip löscht den größten Teil dieses Gewinns wieder aus. Gemessene Zahlen über reale Formen und die vier Fälle, in denen Minifizieren es schlimmer macht.
Eine 10-MB-JSON-Datei kann im V8-Heap 30–50 MB werden. Erfahren Sie, was Strings, Objekte und Zahlen wirklich kosten, wie man mit process.memoryUsage eine Baseline legt und wann Streaming hilft.
Ruckeln beginnt beim Anlegen von DOM-Knoten, nicht beim Scrollen. Behandelt Aufklappen zuerst, virtuelle Listen, Suchhervorhebung und Worker-Grenzen, mit Messwerten.
JSON-Exporte im Bereich von Dutzenden MB lassen Texteditoren und Online-Tools häufig einfrieren, obwohl das Parsen nur wenige Hundert Millisekunden dauert. Wir haben an einer 45-MB-Stichprobe mit 500.000 Datensätzen Zeit und Speicher jeder Stufe gemessen, gezeigt, dass Zeilen- und Knotenzahl die wahren Kosten sind, und eine Entscheidungstabelle je Dateigröße erstellt: Online-Ansicht, Kommandozeilen-Extraktion, Streaming und Desktop-App.