从Java运行Ruby脚本时,JRuby的性能很慢

时间:2017-01-04 09:59:20

标签: java jruby

我使用JRuby从Java运行一些Ruby脚本并收集结果。一切正常,但性能慢得令人无法接受 - 从终端执行script.rb大约需要0.3秒,通过JRuby从Java执行它需要10秒钟。我使用的代码是:

ScriptingContainer jruby = new ScriptingContainer(LocalContextScope.THREADSAFE);
String script = readScript("script.rb");
Object receiver = jruby.runScriptlet(script);   // takes ~10 seconds
Map<String, String> executionResult = (Map<String, String>) jruby.callMethod(receiver, ...);

瓶颈是runScriptlet()方法,在通常高性能的Linux机器上花费8-10秒。我使用JRuby 9.1.6.0和Java 8(openjdk 1.8)。

我做错了什么 - 也许缺少一些必要的设置 - 或者这只是JRuby真的有多慢?还有其他人遇到过这个吗?

0 个答案:

没有答案