Menghurai, Memaparkan, dan Menstrim JSON Besar
Penghuraian selalunya bukan kesesakan; pemaparan dan penyalinan ialah. Optimumkan sepanjang empat lapisan "hurai → telusuri → paparkan → hantar" supaya usaha anda tidak terbuang.
Fail JSON bersaiz puluhan megabait boleh membekukan main thread, dan JSON yang direka dengan teliti boleh menembusi perkhidmatan; kategori ini merangkumi kedua-dua daya pemprosesan dan pertahanan.
6 artikelPenghuraian selalunya bukan kesesakan; pemaparan dan penyalinan ialah. Optimumkan sepanjang empat lapisan "hurai → telusuri → paparkan → hantar" supaya usaha anda tidak terbuang.
JSON.parse sendiri selamat; bahayanya ialah apa yang berlaku selepasnya: cantum mendalam, penetapan mengikut laluan, pembenaman ke dalam HTML, kedalaman dan saiz tanpa had.
Pengecilan memotong 30-50% daripada JSON mentah, tetapi gzip menghapuskan kebanyakan keuntungan itu. Nombor yang diukur merentasi bentuk sebenar, serta empat kes di mana pengecilan menjadikan keadaan lebih teruk.
Fail JSON 10MB boleh menjadi 30-50MB dalam heap V8. Ketahui kos sebenar string, objek dan nombor, cara mengambil garis dasar dengan process.memoryUsage, dan bila penstriman membantu.
Tersekat-sekat bermula apabila nod DOM dicipta, bukan apabila anda menatal. Merangkumi pemaparan runtuh dahulu, senarai maya, penyerlahan carian dan sempadan Worker, dengan metrik.
Eksport JSON berpuluh MB kerap membekukan penyunting teks dan alat dalam talian, sedangkan penghuraian sendiri hanya mengambil beberapa ratus milisaat. Kami mengukur masa dan memori pada setiap peringkat untuk sampel 45 MB dengan 500,000 rekod, menunjukkan kos sebenar terletak pada bilangan baris dan nod, serta membina jadual pemilihan alat mengikut saiz fail: paparan dalam talian, baris perintah, pemprosesan strim dan aplikasi desktop.