1
我正在实现一个利用Groovy作为脚本引擎的程序,为用户提供了自动执行任务的可能性。因此脚本有需求,这是我用下面的代码实现要加载: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不是一个选项,因为那需要一个“外部”程序调用。
非常感谢!
我找不到预编译groovy脚本的方式,除了使用groovyc,但GroovyScriptEngine如果仅以* .class的形式提供,则不会选择正确的脚本(至少不会使用初始问题中描述的代码) 。是否有另一种方法来实现相同? – MrG 2008-12-12 14:24:27