2009-08-14 8 views
2

Rubyでコード化されたプログラムの一部で、より多くのパフォーマンスが必要です。 Pythonでは、パーフォロマンスを向上させるためにPsycoライブラリ(コードをコンパイルするか、実行前にコンパイルする)を使うことができましたが、Rubyのようなものが存在するかどうかはわかりません。RubyのPsycoライブラリ(Python)のようなものが存在しますか?

ありがとうございます!

+0

をインストール(no 'をh ')? – quark

+0

ああ、そうですね。 – a0rtega

答えて

1

earcarあなたは1.9.xためにあなたのルビーを更新することができ

権利である、実際に1.9からルビーのすべてのバージョンは、YARVが付属して、それは古いRubyインタプリタよりもはるかに高速です、もちろん、これは、以前のバージョンがインストールされていることを前提としています。

さらに高速が必要な場合は、Cのルビ拡張でコードを書くことができます。 Here an example..

これははるかに高速ですが、cでプログラミングする必要があります。

+0

はい、私はCで拡張子を書くと思ったが、私はこのプログラムでは瞬間を検索しているわけではありません;) – a0rtega

1

私は考えていませんが、あなたはboost performance Ruby 1.9を使用することができます。

a lot of things in the languageが変更されたため、とにかく注意する必要があります。

+0

はい、Rubyの新しいバージョンでは、パフォーマンスが大幅に向上しています。 ありがとう、私は変更を参照してください;) – a0rtega

2

あなたがCを知っているなら、rubyinlineを使ってCにドープするだけでコードの小さな部分を最適化できます。どのようなパフォーマンスの向上が期待できるのかわかりませんが、Rubyの代わりにコードのCビットでいくつかのCのリバースを呼び出す場合、大きなスピードアップを見てみるべきです。

「インライン」

クラスのMyTest

def factorial(n) 
    f = 1 
    n.downto(2) { |x| f *= x } 
    f 
end 

inline do |builder| 
    builder.c " 
    long factorial_c(int max) { 
    int i=max, result=1; 
    while (i >= 2) { result *= i--; } 
    return result; 
    }" 
end 

は終わり

始めるため: sudoの宝石あなたはサイコを意味RubyInline

関連する問題