JSベンチ実測MEASURED, NOT RECALLED

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

    ホーム / 計測結果

    数値のソートは文字列ソートより約 1.4 倍遅い

    数値のソートでは比較関数の呼び出しが積み上がるため、既定の辞書順ソートより遅い。ただし辞書順は '10' < '9' になるので、数値の並べ替えには使えない。

    結果

    回目数値 10 万件(比較関数あり)文字列 10 万件(比較関数なし)倍率
    回目 161.28044.9051.36×
    回目 261.76145.0841.37×
    回目 361.50345.0141.37×

    中央値のばらつき: 数値 10 万件(比較関数あり) CV 0.3% / 文字列 10 万件(比較関数なし) CV 0.2% / 倍率 CV 0.2%(3 回の実行から算出)

    測った条件

    10 万要素の配列を 5 回ソート(数値側は (a,b)=>a-b、文字列側は既定の辞書順).

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

    辞書順で困らないデータ(固定幅コードなど)なら既定ソートが速い。数値を正しく並べるには比較関数が必要で、この差はその代償。

    再現する

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

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