Estoy usando ScriptEngine en mi aplicación para evaluar algún código de cliente en mi aplicación. El problema es que no es lo suficientemente eficiente y necesito tomar medidas para mejorar el tiempo de ejecución. Actualmente, puede tomar hasta 1463ms (el promedio es de alrededor de 300ms) para evaluar un script extremadamente simple que es básicamente un reemplazo de parámetros en las URL.Con Java ScriptEngine (Groovy), ¿cómo hacerlo más eficiente?
Estoy buscando estrategias simples para mejorar este rendimiento sin perder la capacidad de scripting.
Mi primer pensamiento 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 alguien que realmente lo esté haciendo.
¿Alguna idea? 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);
sería apreciada Cualquier comentario!
¡Oh, esa es una gran idea! He seguido adelante y he agrupado el ScriptEngine con un fondo común. Ahora seguiré y precompilaré. ¡Gracias! – matsientst