Rubyでコード化されたプログラムの一部で、より多くのパフォーマンスが必要です。 Pythonでは、パーフォロマンスを向上させるためにPsycoライブラリ(コードをコンパイルするか、実行前にコンパイルする)を使うことができましたが、Rubyのようなものが存在するかどうかはわかりません。RubyのPsycoライブラリ(Python)のようなものが存在しますか?
ありがとうございます!
Rubyでコード化されたプログラムの一部で、より多くのパフォーマンスが必要です。 Pythonでは、パーフォロマンスを向上させるためにPsycoライブラリ(コードをコンパイルするか、実行前にコンパイルする)を使うことができましたが、Rubyのようなものが存在するかどうかはわかりません。RubyのPsycoライブラリ(Python)のようなものが存在しますか?
ありがとうございます!
earcarあなたは1.9.xためにあなたのルビーを更新することができ
権利である、実際に1.9からルビーのすべてのバージョンは、YARVが付属して、それは古いRubyインタプリタよりもはるかに高速です、もちろん、これは、以前のバージョンがインストールされていることを前提としています。
さらに高速が必要な場合は、Cのルビ拡張でコードを書くことができます。 Here an example..
これははるかに高速ですが、cでプログラミングする必要があります。
はい、私はCで拡張子を書くと思ったが、私はこのプログラムでは瞬間を検索しているわけではありません;) – a0rtega
私は考えていませんが、あなたはboost performance Ruby 1.9を使用することができます。
a lot of things in the languageが変更されたため、とにかく注意する必要があります。
はい、Rubyの新しいバージョンでは、パフォーマンスが大幅に向上しています。 ありがとう、私は変更を参照してください;) – a0rtega
あなたが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
をインストール(no 'をh ')? – quark
ああ、そうですね。 – a0rtega