Pythonは速いとの記述を見かけたので他の言語との性能比較をしてみました。
測定に用いたプログラムは、1~10,000,000までの総和を求めるというシンプルなものです。
非常に簡易的な測定なので、結果を鵜呑みにしないようご注意ください。
測定に用いた環境は以下の通り。
Python2.5
ループ1000万回で実行時間が1.632秒
ループ1回の所要時間は163.2nsです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | >>> def count(n): ... i = 0 ... sum = 0 ... while i < n: ... i = i + 1 ... sum = sum + i ... return sum ... >>> profile.run('count(10000000)') 4 function calls in 1.632 CPU seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.000 0.000 :0(setprofile) 1 1.632 1.632 1.632 1.632 <stdin>:1(count) 1 0.000 0.000 1.632 1.632 <string>:1(<module>) 1 0.000 0.000 1.632 1.632 profile:0(count(10000000)) 0 0.000 0.000 profile:0(profiler) |
PHP 5.3.1
xamppでインストールした環境で、オプティマイザー類は何もいれていません。
ループ10000000回で実行時間は0.927秒
ループ1回の所要時間は92.7nsです。
あれっ、Pythonより速いですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
JavaScript on Chrome8
ループ1000万回で実行時間は0.195秒。
ループ1回あたりの所要時間は19.5nsです。
JavaScriptってもっと遅いものだと思ってました。Chromeすごいですね。
IE9で測定すると0.25秒前後、Firefox3.6で測定すると0.05秒程度でした。
まっ、ソースコードが単純すぎるのであまり参考にはなりませんが、JavaScript、意外と速いですね。
1 2 3 4 5 6 7 8 9 10 11 | <script> n = 10000000 sum = 0; var start = new Date(); for(i = 0; i < n; i++){ sum += i; } var end = new Date(); var span = end-start; alert(span) </script> |
まとめ
Pythonそんなに速くない。けど、致命的な遅さではないはず。きっと。