JSベンチ実測MEASURED, NOT RECALLED

    ↑↓ で選択、Enter で開く。Esc で閉じる。

    ホーム / 計測結果

    `+=` で文字列を繋ぐほうが `push + join` より 3.6 倍速い

    10,000 個の短い文字列を連結するとき、配列に積んで join('') するより += で繋いだほうが速い。V8 のロープ文字列(cons string)が効いているため。

    結果

    回目push + join`+=` 逐次連結倍率
    回目 10.3000.0843.57×
    回目 20.3230.0903.58×
    回目 30.3080.0873.55×

    中央値のばらつき: push + join CV 3.1% / `+=` 逐次連結 CV 2.9% / 倍率 CV 0.3%(3 回の実行から算出)

    測った条件

    10,000 セグメント('segment-0' … 'segment-9999')を 1 本の文字列に連結.

    この数字が当てはまらない場面

    数 MB を超える巨大文字列や、連結回数が数回のケースでは差は縮む。ブラウザ間で同じ傾向とは限らない。

    再現する

    cd bench
    node --expose-gc micro-fixed.mjs --out ../data/run.json --samples 21

    同じ機械で 3 回実行し、median のばらつきが 10% 以内なら同じ結論になります。手元で違う結果が出たら このサイトについて から連絡してください。撤回します。