像Psyco库(Python)这样的东西存在吗?

时间:2009-08-14 20:03:56

标签: ruby performance

我需要在程序的一部分中使用Ruby编写更多的性能。 在Python中,我可以使用Psyco库(编译代码或执行前的一部分)来提高性能,但我不知道Ruby中是否存在类似的东西。

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您了解C,您可以通过使用rubyinline掺杂到C来优化代码的小部分。我不知道你可以期待看到什么样的性能改进,但如果你在代码的c位中调用一些c liberys而不是ruby你应该开始看到一些大的加速

要求'内联'

类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 gem install RubyInline

答案 1 :(得分:1)

我想不,但你可以boost performance使用Ruby 1.9。

无论如何你必须小心,因为a lot of things in the language已经改变了。

答案 2 :(得分:1)

earcar是对的

你可以将你的ruby更新为1.9.x,实际上所有版本的ruby都来自1.9,它带有YARV,比旧的ruby解释器快得多,当然,假设你已经安装了以前的版本。

如果你需要更快的速度......你可以用c ruby​​扩展名编写代码。 Here an example..

这会快得多,但你必须知道用c编程。