Я реализую программу, которая использует 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 не вариант, так как для этого потребуется "внешний" программный вызов.
Большое спасибо!