Wie können Sie mit Java ScriptEngine (Groovy) die Leistung steigern?
Ich verwende ScriptEngine in meiner App, um Client-Code in meiner Anwendung auszuwerten. Das Problem ist, dass es nicht performant genug ist und ich Maßnahmen ergreifen muss, um die Ausführungszeit zu verbessern. Derzeit kann es bis zu 1463 ms dauern (der Durchschnitt liegt bei 300 ms), um ein extrem einfaches Skript zu entwickeln, bei dem es sich im Wesentlichen um das Ersetzen von Parametern in URLs handelt.
Ich suche nach einfachen Strategien, um diese Leistung zu verbessern, ohne die Skriptfähigkeit zu verlieren.
Mein erster Gedanke war, das ScriptEngine-Objekt zu bündeln und wiederzuverwenden. Ich sehe in der Spezifikation, dass es wiederverwendet werden soll, aber ich habe keine Beispiele von jemandem gefunden, der es tatsächlich tut.
Irgendwelche Ideen? Hier ist mein Code:
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);
Über Feedback würde ich mich freuen!