从java运行ruby脚本时jruby性能变慢

oxalkeyp  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(162)

我正在使用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真的有这么慢?还有人遇到过这个吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题