Может кто-нибудь объяснить, пожалуйста, различия между Graal, GraalVM, Truffle & SubstrateVM?

Я знаю, что все эти технологии связаны между собой, но кто-нибудь может объяснить, для чего они используются и как они сочетаются друг с другом?

1 ответ

Решение

Чрезмерное упрощение: Graal - компилятор байт-кода Java. Может использоваться как раз вовремя (как часть JVM) или раньше времени. SubstrateVM - другие вещи (среда выполнения), необходимые для фактического запуска заранее скомпилированного байт-кода Java без JVM. Это приводит в действие команду GraalVM "native-image". Truffle - платформа для реализации языков в качестве интерпретаторов AST, которые могут быть скомпилированы точно в срок с использованием graal. Некоторые известные реализованные языки - это битовый код JavaScript, Ruby, R и LLVM. GraalVM - большинство этих технологий упакованы вместе для поддержки различных вариантов использования, например: запуск программ JVM (то есть всего, что компилируется в байт-код Java) с использованием Graal в качестве JIT-компилятора для лучшей пиковой производительности, заблаговременная компиляция программ JVM для быстрого запуска и небольшого объема памяти, запуска быстрых динамических языков (JS, R, Ruby), которые могут взаимодействовать без издержек и т. д.

Другие вопросы по тегам