Ruby && Python && Perl && PHP && Ruby1.9

私の記事へのコメントでは、他の言語で提供されている例のパフォーマンスをテストするように要求されました。 私がやろうとしました。

タイトルからわかるように、人気のあるほぼすべての動的言語と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.rbfactor.pyfactor.plfactor.php



Upd:コメントには、結果の客観性についての議論がありました。 はい、私は主張しません、テストは合成であり、さらに、生産性の包括的な分析を行う目標がありませんでした。

結果は次のように考えることができます:

1.これらの言語での実行速度は同程度です(少なくとも、このタスクに大きなジャンプはありません)。

2. Ruby(Rubyに関する記事に基づくこのベンチマーク)は、パフォーマンスの観点から正常に開発されています。

Upd2: Habrauser deeruaは、明確にするためにを作成し、その上にテスト結果が表示されます。

ベンチマーク

Upd3: AlDev Habraiserは脇に立たず、図の別のバージョンを作成しました。

ベンチマーク




All Articles