от Марко Газзуоло

С таким претенциозным названием Oracle представляет то, что она считает Святым Граалем виртуальных машин. Но о чем мы говорим?

GraalVM — это экосистема, основанная на JDK 8 (Java Development Kit 8), которая включает универсальную виртуальную машину собщейсредой выполнения.

Почему он такой особенный? GraalVM запускает многоязычные приложения, в которых сочетаются сильные стороны разных языков программирования. Это может быть, например, веб-приложение, такое как Предсказатель погоды, где JavaScript, Ruby и R работают вместе без каких-либо компромиссов — конфликтов — и с очень высокой производительностью.

В настоящее время поддерживаются следующие языки: JavaScript, Python, Ruby, R, языки на основе JVM, такие как Java, Scala, Kotlin, и языки на основе LLVM, такие как C иС++.

Как экосистема, GraalVM представляет собой набор компонентов, каждый из которых имеет свою особую функцию:

Грааль

Динамический компилятор Just-In-Time (JIT), повышающий эффективность и скорость работы приложений.

Полиглот API Graal

API, объединяющий языки программирования в общую среду выполнения.

SDK Graal

Полезный API для интеграции языков Graal и настройки нативных образов.

JVM Oracle HotSpot

Среда выполнения для языков на основе JVM.

ОСОБЕННОСТИ GraalVM

Это решение Oracle открывает новые перспективы в обработке данных, содержащихся в базах данных Oracle 12c и MySQL, в дополнение к возможности запуска многоязычных приложений.

Используя многоязычный движок (MLE) базы данных, можно выполнять модули Node.js, написанные на JavaScript, в двух запросах и процедурах БД.

GraalVM также может ускорять приложения Java с помощью новой технологии компиляции Just In Time и, что немаловажно, компилировать байт-код Java в машинный код.

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

Полученный собственный двоичный файл содержит всю программу в виде машинного кода для ее немедленного выполнения.

Эти функции позволяют вам создать собственную функцию Java, как описано в этом руководстве. Или вы можете связать другие нативные программы и включить компилятор необязательно.

GraalVM может также запускать приложения JavaScript, написанные для Node.js, заменяя V8 (движок Google JavaScript, также используемый Node.js). Основные преимущества этой операции заключаются, во-первых, в многоязычных приложениях (например, в библиотеках Java, R или Python), затем в запущенных процессах с большими конфигурациями кучи и сборщиками мусора Java и, наконец, в использовании возможностей взаимодействия GraalVM для определить структуры данных в C/C++, чтобы поделиться ими с JavaScript. Эти функции позволяют использовать существующие библиотеки Java или платформы Java, такие как Spark, процессами Node.js. Кроме того, вы можете использовать R или Python, например, для обработки данных непосредственно из приложения JavaScript.

3 НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ INTERLOGICA

В настоящее время вInterlogicaмы тестируем потенциал этой технологии в трех основных направлениях, поскольку Twitter уже использует GraalVM в производстве с превосходными результатами, как они утверждают. .

  1. Первый этап касается оптимизации использования ресурсов и повышения производительности существующих приложений Java;
  2. Во-вторых, создание многоязычных решений с максимальным использованием сильных сторон каждого языка, особенно в таких областях, как наука о данных и машинное обучение, где Python занимает львиную долю, а C/C++ по-прежнему сохраняется. иметь лучшие выступления.
  3. Возможность создавать машинные коды для их немедленного выполнения внутри встроенных устройств и IoT (Интернета вещей), где ресурсы меньше, и важно, чтобы код оставался минимальным, для экономия памяти и времени выполнения.

GraalVM все еще содержит некоторые ошибки молодости, что вполне понятно, поскольку версия 1.0 все еще становится серебряной.

Потенциал этого продукта по-прежнему остаетсявысоким,и открывает новые сценарии в разработке множества программных решений.

Первоначально опубликовано на www.interlogica.it 20 августа 2018 г.