Как я могу решить медленную проблему с песочницей nashorn? - PullRequest
0 голосов
/ 18 октября 2019

Я использую песочницу 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 миллисекунд) и использует много памяти (30 МБ).

Я пытался статически создать песочницу Nashorn для решения этой проблемы,Это быстрее и использует меньше памяти, но возникла проблема с тем, что введенная переменная является общей.

Есть ли способ решить проблему?

...