Ruby与JRuby对Java的多线程

时间:2017-12-07 04:38:32

标签: java jruby

我是Ruby和JRuby的新手,我试图在Ruby中实现多线程代码,并且知道GIL不允许我的代码并行运行然后我转移到JRuby并实现相同的代码并执行JRuby的时间比Ruby要好得多。我研究过JRuby线程与Java中的线程非常类似,所以我在Java中的代码中也实现了相同的功能,我在Java中的性能(执行时间)比JRuby快了近10倍,有人可以解释一下我的原因为了这?提前致谢

1 个答案:

答案 0 :(得分:0)

当您考虑使用Java实现Ruby的JRuby时,解释非常简单,这意味着您使用.rb片段执行“更多”Java代码,而将.java编译为.class ... < / p>

即使方法调度成本较低,也存在Ruby的动态特性,例如:当你在Java上a+1时,它会在Ruby中a+1添加整数,这是一个额外的溢出检查等。

你的问题非常普遍,我们也不知道你做了什么样的表现,但最终当你做'真实世界'的工作时,如果你觉得某些部分是值得快10倍,您仍然可以选择在“原生”Java中重新制作该片段。