`JSON.stringify` は `JSON.parse` より約 2.4 倍速い
同じ 1 MB でも、文字列化よりパースのほうが遅い。パースは構文解析とオブジェクト生成の両方が必要になるため。
結果
| 回目 | `JSON.parse`(1 MB) | `JSON.stringify`(同オブジェクト) | 倍率 |
|---|---|---|---|
| 回目 1 | 3.284 | 1.167 | 2.81× |
| 回目 2 | 2.850 | 1.186 | 2.40× |
| 回目 3 | 2.868 | 1.212 | 2.37× |
測った条件
1 MB の JSON 文字列をパースする処理と、同規模のオブジェクトを文字列化する処理.
この数字が当てはまらない場面
入力の形(深い入れ子・数値の比率・文字列長)で比は変わる。ここで測ったのは 1 種類の構造だけ。
再現する
cd bench
node --expose-gc micro-fixed.mjs --out ../data/run.json --samples 21 同じ機械で 3 回実行し、median のばらつきが 10% 以内なら同じ結論になります。手元で違う結果が出たら このサイトについて から連絡してください。撤回します。