我的同事通常使用 C 或 Fortran 进行高性能计算(大型数据数组的数学运算)。我想知道 Ruby 代码是否有可能被编译/转换并在性能方面接近优化的 C 代码?
有许多项目可以将 Ruby 编译为字节码(Rubinius、JRuby、IronRuby、YARV?、Cardinal)和本机代码(MacRuby、..?)。他们有什么机会接近 C 性能?
还有将近 2 年的非活动项目将 Ruby 代码转换为 C 代码:ruby2c。
相关问题:
我的同事通常使用 C 或 Fortran 进行高性能计算(大型数据数组的数学运算)。我想知道 Ruby 代码是否有可能被编译/转换并在性能方面接近优化的 C 代码?
有许多项目可以将 Ruby 编译为字节码(Rubinius、JRuby、IronRuby、YARV?、Cardinal)和本机代码(MacRuby、..?)。他们有什么机会接近 C 性能?
还有将近 2 年的非活动项目将 Ruby 代码转换为 C 代码:ruby2c。
相关问题:
您没有包括一个选项:在 C 中扩展 Ruby 相当容易,因此如果您有一组有限的操作需要快速,您可以编写一个 C 扩展,然后从 Ruby 中使用它。
http://people.apache.org/~rooneg/talks/ruby-extensions/ruby-extensions.html
达到数值计算的 C 性能水平的最简单方法是使用专门的库,如Ruby/GSL,它们已经是高度优化的编译 C 代码。最终性能将取决于您的代码在库中花费的时间。
如前所述,您将希望使用带有 ruby 包装器的高性能库。不要打折 JRuby 使用 Java 库进行科学计算。