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