Sto utilizzando ScriptEngine nella mia app per valutare alcuni codici client nella mia applicazione. Il problema è che non è abbastanza performante e ho bisogno di prendere misure per migliorare il tempo di esecuzione. Attualmente, possono essere necessari fino a 1463 ms (la media è di circa 300 ms) per valutare uno script estremamente semplice, che in pratica è la sostituzione dei parametri negli URL.Con Java ScriptEngine (Groovy), come renderlo più performante?
Sto cercando strategie semplici per migliorare questa prestazione senza perdere la capacità di scripting.
Il mio primo pensiero è stato quello di raggruppare l'oggetto ScriptEngine e riutilizzarlo. Vedo nelle specifiche che è destinato a essere riutilizzato ma non ho trovato alcun esempio di qualcuno che lo faccia effettivamente.
Qualche idea? Ecco il mio codice:
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);
Qualsiasi commento sarebbe apprezzato!
Oh, questa è una grande idea! Sono andato avanti e ho riunito lo ScriptEngine con il pool di comuni. Ora vado avanti e precompilo. Grazie! – matsientst