Com Java ScriptEngine (Groovy), como torná-lo mais performant?

Eu estou usando o ScriptEngine no meu aplicativo para avaliar algum código de cliente no meu aplicativo. O problema é que não tem desempenho suficiente e eu preciso tomar medidas para melhorar o tempo de execução. Atualmente, pode levar até 1463ms (a média é em torno de 300ms) para avaliar um script extremamente simples que é basicamente a substituição de parâmetros em URLs.

Estou procurando estratégias simples para melhorar esse desempenho sem perder a capacidade de script.

Meu primeiro pensamento foi reunir o objeto ScriptEngine e reutilizá-lo. Eu vejo na especificação que ele deve ser reutilizado, mas eu não encontrei nenhum exemplo de alguém realmente fazendo isso.

Alguma ideia? Aqui está o meu código:

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);

Qualquer opinião será apreciada!

questionAnswers(1)

yourAnswerToTheQuestion