同じ処理をする関数でRust言語と他の言語で速度比較をしてみたサンプルです。
引数n,x | Ruby 2.6.8 |
Python 3.9.13 |
PHP 7.4.3 |
JavaScript (Node.js 16.16.0) |
Java 18.0.2 |
Go 1.18 |
Rust 1.62.1 |
---|---|---|---|---|---|---|---|
1万 | 6.862s | 8.573s | 4.788s | 0.437s | 0.222s | 0.544s | 0.423s |
10万 | 11m26.039s | 15m58.473s | 7m56.201s | 11.835s | 8.516s | 4.706s | 4.866s |
100万 | 未測定 | 未測定 | 未測定 | 23m15.576s | 14m22.989s | 10m5.680s | 10m13.068s |
200万 | 未測定 | 未測定 | 未測定 | 86m5.192s | 58m30.928s | 45m10.163s | 43m36.613s |
- RustはRubyの約16倍、Pythonの20倍、PHPの約11倍を達成。Goとほぼ互角。Javaも速い。
- なおRustは> cargo buildでデバッグビルドすると6.125s、リリースビルドすると上のように0.423sで14倍ぐらい違う。RustもGoも2回めの実行からは0.1sを切ってさらに速い。
- インタープリター型言語はすでに4〜8秒掛かるが、JavaScript(Node.js)だけは1秒を切っており遜色ない。
- RustはRubyの約140倍、Pythonの約170倍、PHPの約98倍、JavaScriptの2.4倍、Javaの1.8倍を達成。ここでもGoとほぼ互角。
- インタープリター型言語は8分〜16分と一気に遅くなる。今回の計測では何気にPHPが頑張っている。もっとも遅いのはPythonだった。JavaScript(Node.js)だけは10秒台で良好。
- 僅差でGoの方が速かった。それでもRustはJavaの1.4倍、JSの2.3倍を達成。
- Rustがもっとも速い。Goの1.03倍、Javaの1.3倍、JSの2倍。健闘してきたJSもここに来ると1.5H掛かるようになる。