Имеет ли смысл загружать скрипты одновременно в движке Java 8 Nashorn JavaScript?

Имеет ли смысл загружать скрипты одновременно в движок Java 8 Nashorn JavaScript для более быстрого запуска? Возникнут ли проблемы, даже если скрипты не изменяют глобальные переменные? Я не нашел информации в javax.script.ScriptEngine javadocs.

Более того, может ли сам Nashorn загружать скрипты параллельно, когда engine.eval(...) вызывается из нескольких потоков одновременно? Это безопасно? В противном случае вся идея добавления параллелизма в процесс загрузки скриптов обречена.


person Tvaroh    schedule 20.11.2014    source источник
comment
Вы сравнивали его, чтобы увидеть, насколько он важен?   -  person ccleve    schedule 26.11.2014


Ответы (1)


Может быть хорошей практикой компилировать ваши файлы скриптов (лениво или нетерпеливо) как CompiledScript, а затем оценивать их.

Вот примеры кодов: https://github.com/xqbase/util/tree/master/src/main/java/com/xqbase/util/script

Nashorn не является потокобезопасным, как и многие JS-движки, такие как v8. Однако, если глобальные переменные являются потокобезопасными, одновременный вызов CompiledScript.eval () не вызывает проблем.

См. Другой вопрос Создание сценариев Java с Nashorn (JSR 223) и предварительная компиляция

person auntyellow    schedule 26.11.2014
comment
Спасибо за ответ и ссылки. - person Tvaroh; 26.11.2014