我的应用程序中使用ScriptEngine来评估一些客户端代码。问题在于它的性能不够好,我需要采取措施来提高执行时间。目前,即使是对URL进行参数替换这种极简单的脚本,也可能花费长达1463ms的时间(平均约为300ms)。
我正在寻找简单的策略来提高性能,同时又不失脚本能力。
我的第一个想法是池化ScriptEngine对象并重用它。在规范中看到它是可以被重复使用的,但我没有找到任何实际使用它的例子。
有什么想法吗? 这是我的代码:
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);
任何反馈将不胜感激!