JSベンチ実測MEASURED, NOT RECALLED

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

    ホーム / 計測結果

    `for…in` は `Object.keys` より 17% 遅い

    キーを列挙するだけなら Object.keys のほうが速い。for…in はプロトタイプチェーンも辿るため、余分なコストが乗る。

    結果

    回目`for…in``Object.keys` + 配列走査倍率
    回目 131.34927.7631.13×
    回目 231.54926.9591.17×
    回目 332.50427.0441.20×

    中央値のばらつき: `for…in` CV 1.6% / `Object.keys` + 配列走査 CV 1.3% / 倍率 CV 2.6%(3 回の実行から算出)

    測った条件

    100,000 個のキーを持つオブジェクトを列挙.

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

    差は 17% で、他の処理に埋もれやすい。可読性を優先して for…in を選ぶ場面は普通にある。

    再現する

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

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