【发布时间】:2008-12-12 08:07:34
【问题描述】:
我正在实现一个程序,该程序利用 Groovy 作为脚本引擎,为用户提供了自动化任务的可能性。因此脚本必须按需加载,我使用以下代码实现:
// short version, try/catch and error handling skipped
String[] roots = new String[] { "data" };
Binding binding = new Binding();
GroovyScriptEngine gse = new GroovyScriptEngine(roots);
binding.setVariable("control", this.getControl());
// .. several others
gse.run(scriptName, binding); // where scriptName is provided through user selection
我注意到在第一次运行时整个块的执行需要 400 到 800 毫秒,但在我的笔记本上稍后运行时会下降到 200 到 400 毫秒。
一开始,每个事件都会初始化一个新的 GroovyScriptEngine,然后结束。与此同时,我为整个程序使用了一个 GSE 实例,尽管最初的问题尚未解决:
有没有办法预编译 groovy 脚本,即在 GSE 启动时? groovyc 不是一个选项,因为这需要“外部”程序调用。
非常感谢!
【问题讨论】:
标签: performance groovy