我在我的应用程序中使用 ScriptEngine 来评估我的应用程序中的一些客户端代码。问题是它的性能不够,我需要采取措施来改善执行时间。目前,评估一个非常简单的脚本可能需要长达 1463 毫秒(平均约为 300 毫秒),该脚本基本上是 URL 中的参数替换。
我正在寻找简单的策略来提高这种性能而不会失去脚本能力。
我首先想到的是池化 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);
对于任何反馈,我们都表示感谢!