我正在使用jruby从java运行一些ruby脚本并收集结果。一切正常,但执行时的性能慢得令人无法接受 script.rb
从终端执行大约需要0.3秒,从java通过jruby执行大约需要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秒。我正在使用jruby9.1.6.0和java8(openjdk1.8)。
我是做错了什么-也许遗漏了一些必要的设置-还是jruby真的有这么慢?还有人遇到过这个吗?
暂无答案!
目前还没有任何答案,快来回答吧!