尽管JRuby的性能已经接近CRuby了,但有时它仍然不够快。CRuby的用户可以使用Ryan Davis的RubyInline库,它提供了对C/C++的内建支持以便更容易的产生Ruby的C扩展。来自JRuby阵营的Charles Nutter现在已经为JRuby实现了一个RubyInline builder ,它可以即时编译嵌入的Java代码。
下面是Ryan Davis提供的使用C编写的一个阶乘计算方法的示例:
class MyTest inline do |builder| builder.c " long factorial_c(int max) { int i=max, result=1; while (i >= 2) { result *= i--; } return result; } " endend
下面是Charles提供的相应的JRuby实现 :
class FastMath inline :Java do |builder| builder.package "org.jruby.test" builder.java " public static long factorial_java(int max) { int i=max, result=1; while (i >= 2) { result *= i--; } return result; } " endend