如何解决nashorn沙箱的缓慢问题?

时间:2019-10-18 03:49:18

标签: sandbox nashorn

我正在使用nashorn沙箱,如下所示。

import delight.nashornsandbox.NashornSandbox;
import delight.nashornsandbox.NashornSandboxes;

public class myClass() {
    public void myMethod() {
         NashornSandbox sandbox = NashornSandboxs.create();

         sandbox.setMaxCpuTime(10000);
         sandbox.setMaxMemory(1024*1024*1);
         sandbox.setAllowNoBraces(false);
         sandbox.setMaxPreparedStatements(30);
         sandbox.setExecutor(Executors.newSingleThreadExecutor());

         sandbox.inject("input", "abc");
         sandbox.eval("var output = input;");
         Object obj = sandbox.get("output");
     }
}

每次创建实例时,我都会创建一个沙箱。 但是,在eval()/ get()方法部分需要花费很长时间(200毫秒),并占用大量内存(30Mb)。

我试图静态创建一个Nashorn沙箱来解决此问题。 它速度更快并且使用的内存更少,但是存在一个问题,即所注入的变量是共享的。

有没有办法解决这个问题?

0 个答案:

没有答案
相关问题