Używam ScriptEngine w mojej aplikacji do oceny kodu klienta w mojej aplikacji. Problem polega na tym, że nie jest wystarczająco wydajny i muszę podjąć działania w celu poprawy czasu wykonania. Obecnie może to trwać do 1463ms (średnio około 300ms) do ewaluacji wyjątkowo prostego skryptu, który jest w zasadzie zastępowaniem parametrów w adresach URL.Z Java ScriptEngine (Groovy), jak uczynić go bardziej wydajnym?
Poszukuję prostych strategii, aby poprawić tę wydajność bez utraty zdolności skryptowania.
Po raz pierwszy pomyślałem, aby połączyć obiekt ScriptEngine i użyć go ponownie. Widzę w specyfikacji, że ma być ponownie wykorzystane, ale nie znalazłem żadnych przykładów ktoś faktycznie robi to.
Wszelkie pomysły? Oto mój kod:
ScriptEngineManager factory = new ScriptEngineManager();
GroovyScriptEngineImpl engine = (GroovyScriptEngineImpl)factory.getEngineByName("groovy");
engine.put("state", state;
engine.put("zipcode", zip);
engine.put("url", locationAwareAd.getLocationData().getGeneratedUrl());
url = (String) engine.eval(urlGeneratorScript);
Wszelkie uwagi będą mile widziane!
Och, to świetny pomysł! Poszedłem do przodu i połączono ScriptEngine z basenem wspólnoty. Teraz idę i prekompiluj. Dzięki! – matsientst