Что такое GraalVM

По сути, GraalVM — это высокопроизводительная полиглотная виртуальная машина для запуска программ на разных языках. Он поддерживает языки на основе JVM, такие как Java, Scala и Kotlin, а также JavaScript, Ruby, Python и R. Это означает, что он может быстрее запускать программы, а также компилировать и интерпретировать другие языки. Его выпускает Oracle.

Представление

Причина использования GraalVM — повышение производительности. Я запускаю на своей машине 2 примера, собранных на официальном сайте GraalVM, чтобы увидеть разницу с GraalVM и без GraalVM.

  1. В этом примере подсчитывается количество символов верхнего регистра в тексте. Для имитации большой нагрузки одно и то же предложение обрабатывается 10 миллионов раз.

Результаты на моей машине:

Без GraalVM:

А теперь с GraalVM (Enterprise Edition):

Как видите, это почти на 50% быстрее. Я использую Enterprise Edition для Java 8 (v19.3.0), который работает быстрее, чем Community Edition.

Как Graal Compile поддерживает все поддерживаемые языки?

Потому что они создали платформу под названием Truffle. Это платформа для реализации управляемых языков поверх GraalVM. Он предлагает API для описания интерпретатора для вашего языка программирования. Поэтому он создает интерпретатор, работающий с абстрактными синтаксическими деревьями (ASL).

Это означает, что Truffle реализует интерпретаторы, которые могут выполняться поверх JVM, поэтому вы можете реализовать свой собственный язык для работы на GraalVM через Truffle Framework.

Использованная литература:

Веб-сайт GraalVM: https://www.graalvm.org/docs/

10 лучших вещей, которые вы можете сделать с помощью GraalVM: https://medium.com/graalvm/graalvm-ten-things-12d9111f307d

Truffle Framework: https://github.com/oracle/graal/tree/master/truffle