タイトルからわかるように、人気のあるほぼすべての動的言語とRubyの新しいバージョンがテストに参加しました。
結果を見てみましょう。
テストに関するいくつかの言葉。 テストでは、数値分解関数が使用されました。 最も原始的なアルゴリズムは、除算器の列挙です。 各言語で、1つのメソッドでクラスが作成されました(Perlを除く)。
その後、999999に等しい引数を使用して、ループで1000回呼び出されました。
テストが実行されたシステムはDebian Lennyです。 すべてのインタープリターは、公式リポジトリのパッケージによってインストールされます。 プロセッサー-Pentium D 2.8。
このテストには、実験ブランチ1.9のRubyインタープリターも含まれていました(リポジトリからも配信されました)。
別のコメント、言語の機能を考えると、実装したスクリプトのいくつかは最適ではないかもしれません。 すべての言語で同じアルゴリズムを実装しようとしました。 コメントや追加がある場合はコメントしてください。
テストのために、次のスクリプトが作成されました。
#!/ bin / bash uname -a#システム情報 cat / proc / cpuinfo | grep "model name"#プロセッサ情報 #インタープリターバージョンの予備出力を使用して、自身をテストします ルビー-v 時間ruby factor.rb ruby1.9 -v 時間ruby1.9 factor.rb php -v 時間php factor.php python -V 時間python factor.py perl -v 時間perl factor.pl
次に、このスクリプトを実行した結果を見てみましょう。
Linux debian 2.6.26-1-686#1 SMP Mon Dec 15 18:15:07 UTC 2008 i686 GNU / Linux モデル名:Intel(R)Pentium(R)D CPU 2.80GHz モデル名:Intel(R)Pentium(R)D CPU 2.80GHz ruby 1.8.7(2008-08-11パッチレベル72)[i486-linux] 実際の0m1.099s ユーザー0m1.076s sys 0m0.000s ruby 1.9.0(2008-06-20リビジョン17482)[i486-linux] 実数0m0.287s ユーザー0m0.252s sys 0m0.008s PHP 5.2.6-0.1〜lenny1とSuhosin-Patch 0.9.6.2(cli)(ビルド:2008年11月29日21:35:12) Copyright(c)1997-2008 The PHP Group Zend Engine v2.2.0、著作権(c)1998-2008 Zend Technologies 実際の0m0.348s ユーザー0m0.324s sys 0m0.008s Python 2.5.2 実際の0m0.537s ユーザー0m0.536s sys 0m0.000s これはperl、i486-linux-gnu-thread-multi用にビルドされたv5.10.0です Copyright 1987-2007、Larry Wall Perlは、Artistic Licenseまたは GNU General PublicLicense。Perl5ソースキットに含まれています。 FAQリストを含むPerlの完全なドキュメントは、次の場所にあります。 「man perl」または「perldoc perl」を使用するこのシステム。 にアクセスできる場合 インターネットでは、ブラウザでPerlホームページのhttp://www.perl.org/を指定します。 実際の0m0.569s ユーザー0m0.552s sys 0m0.004s
まとめると。 PythonはPerlとほぼ同等の速度です。 Ruby 1.8は当然失われます。 PHPはほぼ最速です。
そして、これは驚くべきことです。実験的なRuby 1.9ブランチが最速です。 テストにRuby 1.9を含めたことは偶然ではありません。 開発中、速度に重点が置かれました。 しかし、正直に言って、私は非常に驚いています。
だから、Rubyのファンには、努力するべきことがあります。 Ruby 2.0を楽しみにしています!:)
テストで使用されたスクリプト:
factor.rb 、 factor.py 、 factor.pl 、 factor.php
Upd:コメントには、結果の客観性についての議論がありました。 はい、私は主張しません、テストは合成であり、さらに、生産性の包括的な分析を行う目標がありませんでした。
結果は次のように考えることができます:
1.これらの言語での実行速度は同程度です(少なくとも、このタスクに大きなジャンプはありません)。
2. Ruby(Rubyに関する記事に基づくこのベンチマーク)は、パフォーマンスの観点から正常に開発されています。
Upd2: Habrauser deeruaは、明確にするために図を作成し、その上にテスト結果が表示されます。
Upd3: AlDev Habraiserは脇に立たず、図の別のバージョンを作成しました。