Oracle анонсировала универсальную виртуальную машину GraalVM
Новости Отредактировано
Система может использоваться для запуска приложений, написанных на JavaScript (Node.js), Python, Ruby, R, на языках для JVM и на языках, для которых формируется биткод LLVM. Код проекта GraalVM распространяется под лицензией GPLv2.
6К открытий6К показов
Компания Oracle представила первый релиз GraalVM, проекта для увеличения производительности при работе с разными ЯП. Система может использоваться для запуска приложений, написанных на JavaScript (Node.js), Python, Ruby, R, на языках для JVM (Java, Scala, Clojure, Kotlin) и на языках, для которых формируется биткод LLVM (C, C++, Rust). Код проекта распространяется под лицензией GPLv2. Несмотря на анонс от Oracle, он пока имеет статус кандидата в релизы.
Возможности системы
GraalVM позволяет непосредственно обращаться к объектам и массивам из других языков и использовать общую среду выполнения. Например, из JavaScript-кода для Node.js допустимо обращаться к библиотеке классов Java.
GraalVM может применяться для создания обособленных исполняемых приложений в качестве части платформ, подобных OpenJDK и Node.js. Также есть возможность встраивать машину как движок обработки данных в СУБД.
Инструментарий GraalVM
Для запуска приложений используется стандартизированное окружение на базе HotSpot JVM. GraalVM предоставляет JIT-компилятор, который быстро выполняет в JVM код любых скриптовых языков, включая JavaScript, Ruby, Python и R. Также машина дает возможность запускать нативный код в JVM, преобразованный в биткод LLVM. Инструментарий системы включает в себя независимые от языков программирования отладчик, систему профилирования и анализатор распределения памяти.
Нативные образы
Для языков на базе JVM можно создавать скомпилированные нативные образы, которые выполняются напрямую с минимальным потреблением памяти. Сначала статический анализ выявляет весь код для выполнения основного Java-метода. Далее к нему применяется полноценная упреждающая компиляция (AOT).
Использование Substrate VM
Функциональность управления памятью и потоками происходит через подключение Substrate VM, которая компилируется в исполняемый код. Сформированный файл включает в себя машинный код приложения, готовый к быстрому выполнению.
6К открытий6К показов