Oracle анонсировала универсальную виртуальную машину GraalVM

Oracle

Компания 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

GraalVM может применяться для создания обособленных исполняемых приложений в качестве части платформ, подобных OpenJDK и Node.js. Также есть возможность встраивать машину как движок обработки данных в СУБД.

Инструментарий GraalVM

Для запуска приложений используется стандартизированное окружение на базе HotSpot JVM. GraalVM предоставляет JIT-компилятор, который быстро выполняет в JVM код любых скриптовых языков, включая JavaScript, Ruby, Python и R. Также машина дает возможность запускать нативный код в JVM, преобразованный в биткод LLVM. Инструментарий системы включает в себя независимые от языков программирования отладчик, систему профилирования и анализатор распределения памяти.

Нативные образы

Для языков на базе JVM можно создавать скомпилированные нативные образы, которые выполняются напрямую с минимальным потреблением памяти. Сначала статический анализ выявляет весь код для выполнения основного Java-метода. Далее к нему применяется полноценная упреждающая компиляция (AOT).

Использование Substrate VM

Функциональность управления памятью и потоками происходит через подключение Substrate VM, которая компилируется в исполняемый код. Сформированный файл включает в себя машинный код приложения, готовый к быстрому выполнению.

Источник: OpenNET

Ещё интересное для вас:
Тест: какой язык программирования вам стоит выбрать для изучения?
Тест: как хорошо вы разбираетесь в Data Science?
Соревнования и бесплатная онлайн-школа для программистов