Con Java ScriptEngine (Groovy), ¿cómo hacerlo más eficaz?

Estoy usando ScriptEngine en mi aplicación para evaluar algún código de cliente en mi aplicación. El problema es que no tiene el rendimiento suficiente y debo tomar medidas para mejorar el tiempo de ejecución. Actualmente, puede tomar hasta 1463 ms (el promedio es de alrededor de 300 ms) para evaluar un script extremadamente simple que básicamente es el reemplazo de parámetros en las URL.

Estoy buscando estrategias simples para mejorar este rendimiento sin perder la capacidad de scripting.

Lo primero que pensé fue agrupar el objeto ScriptEngine y reutilizarlo. Veo en la especificación que está destinado a ser reutilizado, pero no he encontrado ningún ejemplo de que alguien lo haya hecho.

¿Algunas ideas? Aquí está mi 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);

¡Cualquier comentario sería apreciado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta