JavaScriptとC++のクイックソート速度比較
速度比較
C++の方が圧勝なはず。。でもどうなんだろう?? 比較してみよう!といった感じ。
実験内容
1000個のランダムな数字に対してクイックソートを行う。それを10回した平均スピードを求める。 それで、1〜4を比較してみる。
- JavaScript の array.sort
- JavaScript の クイックソート
- JavaScript → C++ クイックソート
- C++ クイックソート
PCスペック
MacBook Pro(2020春)
実行
$ node index.js ===== array.sort ===== Rap: 289 micro sec Rap: 264 micro sec Rap: 269 micro sec Rap: 271 micro sec Rap: 423 micro sec Rap: 283 micro sec Rap: 181 micro sec Rap: 180 micro sec Rap: 179 micro sec Rap: 177 micro sec Avg: 283.2 micro sec ===== JavaSctipt Quicksort ===== Rap: 659 micro sec Rap: 1179 micro sec Rap: 573 micro sec Rap: 214 micro sec Rap: 68 micro sec Rap: 65 micro sec Rap: 66 micro sec Rap: 66 micro sec Rap: 64 micro sec Rap: 68 micro sec Avg: 333.5 micro sec ===== Node -> C++ quicksort ===== Rap: 216 micro sec Rap: 186 micro sec Rap: 189 micro sec Rap: 192 micro sec Rap: 192 micro sec Rap: 185 micro sec Rap: 188 micro sec Rap: 183 micro sec Rap: 187 micro sec Rap: 204 micro sec Avg: 219.3 micro sec ===== C++ quicksort ===== Rap: 38 micro sec Rap: 36 micro sec Rap: 39 micro sec Rap: 39 micro sec Rap: 38 micro sec Rap: 36 micro sec Rap: 36 micro sec Rap: 38 micro sec Rap: 38 micro sec Rap: 38 micro sec Avg: 37.6 micro sec
結果
4番目のC++圧勝!
3番目のNode→C++は受け渡しで時間かかってそう。4番目から考えて、受け渡しに180 micro sec くらい!?
2番目のJavaScriptのクイックソートは前半遅く、後半が速い。1回目だけであれば、スクリプト言語だから?と言えそうだけどなんでだろう??
1番目もちょっと遅い感じかな。