Jump to content

ГраальВМ

ГраальВМ
Разработчик(и) Корпорация Oracle
Стабильная версия
GraalVM для JDK 22 / 19 марта 2024 г .; 4 месяца назад ( 19.03.2024 )
Репозиторий
Написано в Ява
Операционная система Linux , Windows и MacOS [1]
Платформа Виртуальная машина Java
Тип Динамический компилятор Java и среда выполнения
Лицензия Выпуск сообщества: GPLv2 ; [2] [3] Оракул ГраалВМ: «ГТЦ» .
Веб-сайт www .grailvm .org

GraalVM — это комплект разработки Java (JDK), написанный на Java. Дистрибутив GraalVM с открытым исходным кодом основан на OpenJDK , а корпоративный дистрибутив — на Oracle JDK. Помимо JIT-компиляции , GraalVM может заранее скомпилировать Java-приложение. Это позволяет ускорить инициализацию, повысить производительность во время выполнения и снизить потребление ресурсов, но полученный исполняемый файл может работать только на платформе, для которой он был скомпилирован.

Он предоставляет дополнительные языки программирования и режимы выполнения. Первый готовый к использованию выпуск GraalVM 19.0 был распространен в мае 2019 года. [4] Самый последний выпуск — GraalVM для JDK 22, выпущенный в марте 2024 года. [5]

Основные отличия GraalVM от базового JDK включают:

  • Graal Compiler JIT-компилятор .
  • GraalVM Native Image — это технология предварительной компиляции Java-приложений.
  • Платформа реализации языка Truffle и GraalVM SDK, платформа на основе Java и набор API-интерфейсов для разработки высокопроизводительных языковых сред выполнения.
  • GraalVM Polyglot API — API для встраивания кода гостевого языка в хост-приложение на основе Java.
  • JavaScript Runtime, среда ECMAScript 2023, а также Node.js. выполнения JavaScript, совместимая с
  • LLVM Runtime — это среда выполнения для выполнения языков, которые можно преобразовать в биткод LLVM.
  • Повысить производительность языков на основе виртуальной машины Java (JVM), чтобы они соответствовали родным языкам. [6] [7]
  • Сократить время запуска приложений на основе JVM за счет их предварительной компиляции.
  • Чтобы обеспечить интеграцию GraalVM в базу данных Oracle, OpenJDK, Android/iOS и аналогичные пользовательские внедрения.
  • Чтобы включить встраивание кода гостевого языка в хост-приложение на основе JVM .
  • Чтобы обеспечить возможность смешивания кода любого языка программирования в одном приложении, объявленном как «полиглотное приложение». [6] [8]

GraalVM берет свое начало в проекте Maxine Virtual Machine в Sun Microsystems Laboratories (ныне Oracle Labs ). Целью проекта было написать виртуальную машину Java на самой Java, чтобы избежать проблем разработки на C++, особенно ручного управления памятью, и получить выгоду от метациклической оптимизации . Проект переключил свое внимание на компилятор и HotSpot максимально подключил его к среде выполнения . Компилятор GraalVM, Graal, был запущен путем ручного преобразования кода клиентского компилятора HotSpot (названного «C1») в Java, заменив предыдущий компилятор Maxine. [9]

Graal был включен в выпуски JDK на основе HotSpot, такие как OpenJDK из Java SE 9–15, для обеспечения экспериментальной предварительной компиляции. Параметр UseJVMCICompiler также позволил использовать Graal в качестве замены серверного компилятора (названного «C2»). [10] Эта опция была удалена в Java SE 16, чтобы избежать дублирования усилий по поддержанию версии в JDK и автономной версии GraalVM. Аналогичная функция для создания собственного исполняемого файла из приложения Java предоставляется пакетом native-image инструмент автономных выпусков GraalVM. Инструмент обрабатывает классы приложения Java и другие метаданные для создания двоичного файла для конкретной операционной системы и архитектуры. Его можно использовать для создания собственного исполняемого файла или собственной общей библиотеки.

GraalVM доступен как Oracle GraalVM в соответствии с лицензией GraalVM FreeTerms and Conditions (GFTC), как Oracle GraalVM Enterprise Edition, доступный после принятия «Лицензионного соглашения OTN Oracle GraalVM Enterprise Edition, включая лицензию на ранние версии Adopter» [1 или как Community Edition с лицензия с открытым исходным кодом. Корпорация Oracle объявила о выпуске Oracle GraalVM Enterprise Edition 8 мая 2019 г. и Oracle GraalVM 13 июня 2023 г., представив новую лицензию GraalVM FreeTerms and Conditions (GFTC). GraalVM может заменить JDK по умолчанию на платформах Linux и macOS на процессорах x64 и AArch64, а также на платформе Windows x64. График выпуска можно найти в Справочном центре Oracle и на веб-сайте GraalVM.

Выпускать Дата Java-версия Функции
ГраальВМ 19.0.0 2019-05-09 OpenJDK 1.8.0_212 Первый серийный выпуск для платформ Linux и macOS x64. Доступность Windows находилась в стадии разработки и была выпущена как ранняя версия.
ГраальВМ 19.1.0 2019-07-02 OpenJDK 1.8.0_212 Представлено libgraal, общая библиотека, созданная GraalVM Native Image, которая содержала предварительно скомпилированный двоичный файл компилятора Graal, что значительно улучшало скорость компиляции. В выпуске также улучшена реализация оптимизации на основе профиля (PGO) для Native Image.
ГраальВМ 19.2.0 2019-08-20 OpenJDK 1.8.0_222 В этом выпуске добавлена ​​предварительная функциональность для компиляции собственных приложений с использованием набора инструментов LLVM, поставляемого с GraalVM. GraalVM Native Image улучшил производительность и упростил процесс сбора данных для оптимизации на основе профиля (PGO). Пользовательский доступ к полиглотам был реализован в среде выполнения полиглотов для управления доступом к привязкам полиглотов и обмену данными между языками. Предварительная версия функциональности Java Flight Recorder (JFR) была выпущена в виде плагина для VisualVM.
ГраальВМ 19.3.0 2019-11-19 Oracle JDK 1.8.0_231, 11.0.5

OpenJDK 1.8.0_232,11.0.5

В этом выпуске анонсированы первые сборки GraalVM на базе Java SE 11; добавлены новые платформы — Linux AArch64 и экспериментальная Windows x64. В этом выпуске также добавлена ​​инкапсуляция модулей для изоляции компилятора Graal и кода API Truffle от кода приложения. GraalVM Native Image переключился на использование собственного кода JDK вместо ручных замен. Впервые был представлен плагин Native Image Maven . GraalVM Enterprise 19.3.0 был первым выпуском с запланированной долгосрочной поддержкой (LTS).
ГраальВМ 20.0.0 2020-02-18 Oracle JDK 1.8.0_241, 11.0.6

OpenJDK 1.8.0_242, 11.0.6

Улучшена совместимость с Windows; включил улучшенную технологию Native Image и улучшенные инструменты, а также множество изменений в компиляторе и размещенных языках.
ГраальВМ 20.1.0 2020-05-19 Oracle JDK 1.8.0_251, 11.0.7

OpenJDK 1.8.0_252, 11.0.7

Включено несколько улучшений для многих компонентов. Помимо улучшений производительности, были опубликованы исправления для удобства использования Native Image. В движке JavaScript по умолчанию реализованы все функции режима ECMAScript 2020. Механизм регулярных выражений ( TRegex ), используемый JavaScript и Python, реализовал все выражения. Ruby ( TruffleRuby ) был улучшен в плане совместимости с собственными драгоценными камнями.
ГраальВМ 20.2.0 2020-08-18 Oracle JDK 8u261, 11.0.8

OpenJDK 1.8.0_262, 11.0.8

В этом выпуске представлена ​​новая оптимизация частичного развертывания цикла для JIT-компиляции. Улучшена сборка мусора, подобная G1GC, для рабочих нагрузок, где Native Image требует меньших пауз GC. Native Image был расширен для создания «в основном статических» исполняемых файлов, которые статически связывают все, кроме libc.
ГраальВМ 20.3.0 2020-11-17 Oracle JDK 1.8.0_271, 11.0.9

OpenJDK 1.8.0_272, 11.0.9

Первая версия Oracle GraalVM Enterprise Edition с LTS Enterprise и финальный выпуск 2020 года. Этот выпуск обеспечил совместное использование кода в среде выполнения GraalVM LLVM, что позволило совместно использовать абстрактное синтаксическое дерево (AST) и скомпилированный код общих библиотек битовых кодов между несколькими контекстами в одном двигатель. В Oracle GraalVM Enterprise Edition была добавлена ​​экспериментальная функция «ограничения ресурсов песочницы».
ГраальВМ 21.0.0 2021-01-19 Oracle JDK 1.8.0_281,11.0.10

OpenJDK 1.8.0_282,11.0.10

В этом выпуске представлена ​​Java on Truffle — реализация виртуальной машины Java, основанная на интерпретаторе Truffle. В GraalVM Native Image добавлены функции сериализации, реализации AWT и Swing для платформы Linux. Средство обновления GraalVM было улучшено, чтобы обеспечить возможность обновления/обновления локальной установки GraalVM.
ГраальВМ 21.1.0 2021-04-20 Oracle JDK 1.8.0_291, 11.0.11, 16.0.1

OpenJDK 1.8.0_292, 11.0.11, 16.0.1

В этом выпуске добавлены функциональные возможности Java 16 (экспериментальные) и улучшена совместимость с Linux AArch64. GraalVM Native Image позволил создавать отчеты о сборке для создания нескольких артефактов и улучшил совместимость с Windows. Многоуровневая компиляция была включена по умолчанию для среды выполнения Polyglot (впервые представлена ​​в GraalVM 20.3); новый вариант песочницы --sandbox.MaxHeapMemory=<size> для указания максимальной кучи памяти.
ГраальВМ 21.2.0 2021-07-20 Oracle JDK 1.8.0_301, 11.0.12, 16.0.2

OpenJDK 1.8.0_302, 11.0.12, 16.0.2

В этом выпуске команда GraalVM добавила новую оптимизацию векторизации SIMD (Single Instruction Multiple Data) для последовательного кода и оптимизацию Strip Mining для неподсчитываемых циклов для компилятора Graal. Он также включал новые официальные плагины Gradle и Maven для GraalVM Native Image с первоначальной функциональностью тестирования JUnit 5 и добавил базовую функциональность Java Flight Recorder (JFR) для Java SE 11 в GraalVM Native Image, а также «epsilon» GC для создания исполняемого файла без сборщик мусора. Java на Truffle представил API плагина HotSwap для перезагрузки кода без перезапуска работающего приложения.
ГраальВМ 21.3.0 2021-10-19 Oracle JDK 1.8.0_311, 11.0.13, 17.0.1

OpenJDK 1.8.0_312, 11.0.13, 17.0.1

Дистрибутивы GraalVM для Java SE 17 стали доступны для скачивания. В выпуске добавлена ​​новая оптимизация корреляции невозможных путей для устранения невозможных путей, а также реализована реализация постоянного ослепления для защиты от атак с распылением JIT. В GraalVM Native Image улучшен сбор метаданных отражения, позволяющий различать запрашиваемые и вызываемые методы отражения, добавлена ​​первоначальная совместимость с системой модулей платформы Java и несколько новых оптимизаций для уменьшения размера исполняемого файла и времени его сборки.
ГраальВМ 22.0.0 2022-01-18 Oracle JDK 11.0.14, 17.0.2

OpenJDK 11.0.14, 17.0.2

Начиная с этого выпуска, GraalVM прекратил поддержку Java SE 8 и удалил поддержку Java SE 12, 13, 14, 15 и 16. В этом выпуске появился новый удобный для пользователя вывод сборки для собственного образа GraalVM с индикаторами выполнения и дополнительной сводной информацией. ; улучшенная совместимость с системой модулей платформы Java (опции --add-reads и --add-modulesпоявился); и новая оптимизация ротации циклов для компилятора Graal, которая преобразует больше неподсчитываемых циклов в подсчитываемые.
ГраальВМ 22.1.0 2022-04-19 Oracle JDK 11.0.15, 17.0.3

OpenJDK 11.0.15, 17.0.3

В этом выпуске представлена ​​предварительная сборка для Apple Silicon. darwin-aarch64. В GraalVM Native Image добавлен новый режим для создания условной конфигурации с помощью агента трассировки, а также новый режим «быстрой сборки». -Ob, чтобы сократить время создания сборок для разработки. Представлен фреймворк Truffle TruffleStrings— реализация типа String, используемая всеми языками Truffle.
ГраальВМ 22.2.0 2022-07-19 Oracle JDK 11.0.16, 17.0.4

OpenJDK 11.0.16, 17.0.4

В этом выпуске был уменьшен размер JDK, улучшено использование памяти и улучшена совместимость библиотек. Команда Oracle GraalVM совместно с командами Spring, Micronaut и Quarkus представила GraalVM Reachability Metadata Repository — централизованное место, обеспечивающее настройку библиотек, которые не поддерживают GraalVM Native Image. GraalVM Native Image также реализовал спецификацию программного обеспечения (SBOM) и по умолчанию начал работать по пути к модулю. JavaScript, среда выполнения LLVM и VisualVM были отделены от основного пакета и предоставлены как устанавливаемые компоненты.
ГраальВМ 22.3.0 2022-10-18 Oracle JDK 11.0.17, 17.0.5, 19.0.1

OpenJDK 11.0.17, 17.0.5, 19.0.1

Это был последний выпуск с поддержкой Java SE 11 и последний выпуск Feature в году. GraalVM Enterprise 22.3.0 будет поддерживаться в течение следующих 18 месяцев, а GraalVM Community — в течение 12 месяцев. В этой версии представлены сборки Java SE 19, позволяющие пользователям воспользоваться новейшими функциями Java SE 18 и Java SE 19. В собственном образе GraalVM реализованы виртуальные потоки OpenJDK Project Loom (JEP 425) ; а jlink выполнение; и предоставил множество новых функций мониторинга. Проект GraalPython был переименован в GraalPy, а его программа запуска с graalpython к graalpy.
GraalVM для JDK 17 2023-06-13 Oracle JDK 17.0.7

OpenJDK 17.0.7

В этом выпуске представлен новый дистрибутив: Oracle GraalVM в соответствии с новой лицензией GraalVM FreeTerms and Conditions . Наряду с улучшениями производительности реализован сборщик мусора ZGC. В GraalVM Native Image появилась функция Native Image Bundles и добавлен вывод профиля на основе машинного обучения (ML) — предварительно обученная модель машинного обучения для прогнозирования потока управления ветвями графа. Кроме того, начиная с этого выпуска, GraalVM Native Image автоматически устанавливает среды сборки в Windows (больше не требуется запускать командную строку x64 Native Tools).
GraalVM для JDK 20 2023-06-13 Oracle JDK 20.0.1

ОпенJDK 20.0.1

GraalVM для JDK 21 2023-09-19 Oracle JDK 21 OpenJDK 21 В этом выпуске в GraalVM реализованы все функции Java SE 21, такие как виртуальные потоки из Project Loom. Улучшения производительности в этом выпуске позволили заранее скомпилированным Java-приложениям работать с максимальной производительностью, как в HotSpot. В этом выпуске включен сборщик мусора Garbage First (G1 GC) в Linux AArch64 (в дополнение к Linux x64) в собственном образе GraalVM. GraalVM SDK был реорганизован и разделен на четыре модуля. Среды выполнения языков были «отвязаны» от GraalVM JDK и стали доступны в виде библиотек Java в Maven Central. Oracle GraalVM для JDK 21 стал текущей версией долгосрочной поддержки (LTS).

Компоненты

[ редактировать ]

Компилятор GraalVM Graal поставляется с компонентами обычной виртуальной машины Java ( OpenJDK ). В GraalVM включены дополнительные компоненты для включения новых режимов выполнения ( GraalVM Native Image ) или языков программирования ( среда выполнения LLVM , GraalVM JavaScript в качестве потенциальной замены устаревшему движку Nashorn , TRegex в качестве механизма регулярных выражений ).

Компилятор GraalVM

[ редактировать ]

Компилятор GraalVM Graal — это современный компилятор Java (JIT) . Он дополняет или заменяет существующие компиляторы (C1/C2 в HotSpot ). В отличие от существующих компиляторов, Graal написан модульным, удобным в сопровождении и расширяемым способом на самой Java. Он выпущен под лицензией GPL версии 2 с исключением classpath .

Собственный образ GraalVM

[ редактировать ]

GraalVM Native Image — это передовая технология компиляции, которая создает исполняемые двоичные файлы файлов классов. [11] Она выпущена как технология раннего внедрения, что означает, что она готова к производству, но в будущих выпусках может включать обновления, несовместимые с бэкпортом.

Эта функциональность поддерживает языки на основе JVM, но при необходимости может запускать динамические языки, разработанные на основе GraalVM с помощью платформы Truffle. Исполняемый файл не запускается на JVM и использует необходимые компоненты времени выполнения, такие как планирование потоков или сборщик мусора, из минимальной виртуальной машины под названием Substrate VM. Поскольку полученный собственный двоичный файл уже включает в себя классы приложений, зависимости JDK и библиотеки, время запуска и выполнения значительно сокращается.

GraalVM Native Image официально поддерживается Java-фреймворками Fn, Gluon, Helidon, Micronaut , Picocli, Quarkus , Vert.x и Spring Boot . [12] [13]

В сентябре 2016 года Oracle подробно описала планы по добавлению в OpenJDK предварительной компиляции с использованием компилятора GraalVM для Java SE 9 . [14] [15] Это предложение, отслеживаемое JEP 295: Ahead-of-Time Compilation , было включено в Java SE 9. [16] Экспериментальное использование GraalVM в качестве JIT-компилятора было добавлено для платформы Linux x64 для Java SE 10 . [17]

В версиях Java SE с 9 по 15 jaotc команда создает исполняемый файл. [18] Экспериментальный -XX:+EnableJVMCIProduct Флаг разрешает использование JIT-компилятора Graal. [19] С тех пор эта функциональность доступна в компоненте Native Image автономных выпусков GraalVM. [20]

Структура реализации языка Truffle

[ редактировать ]

В сотрудничестве с GraalVM компания Oracle Labs разработала интерпретатор абстрактного синтаксического дерева языка (AST) под названием «Truffle», который позволит ей реализовывать языки поверх GraalVM. [21] [22] В Truffle реализовано множество языков, в том числе интерпретатор C , который утверждает, что работает примерно так же быстро, как GCC и Clang . [23]

Фреймворк Truffle и его зависимая часть, GraalVM SDK, выпускаются под лицензией Universal Permissive License версии 1.0, чтобы стимулировать использование фреймворка для проектов, которые не хотят быть связаны авторскими правами или другими родительскими правами.

Инструментальная поддержка

[ редактировать ]

Основным преимуществом экосистемы GraalVM является не зависящая от языка , полностью динамическая поддержка инструментов, встроенная непосредственно в среду выполнения виртуальной машины. События выполнения могут фиксироваться клиентами API с чрезвычайно низкими издержками в полностью оптимизированном коде. [24] [25]

Базовая установка GraalVM предоставляет независимый от языка отладчик, профилировщик, средство просмотра кучи и другие средства, основанные на инструментах и ​​другой поддержке виртуальной машины. [26] GraalVM также включает в себя серверную реализацию протокола удаленной отладки Chrome Inspector. [27] Хотя изначально он был разработан для отладки JavaScript, его можно использовать для отладки всех языков GraalVM из браузера.

Встраивание языков

[ редактировать ]

Еще одним преимуществом GraalVM является возможность встраивания кода гостевого языка в Java и написания «полиглотных» приложений. [8] Разработчик может интегрировать JavaScript, Python или другие поддерживаемые языки в исходный код Java, предоставляя им характерные преимущества этих языков. Хост-приложение Java и гостевой язык передают данные туда и обратно в одно и то же пространство памяти. Это возможно благодаря платформе реализации языка Truffle. [28] и API-интерфейс GraalVM Polyglot. Ниже приведен пример вызова функции, определенной в Python, из Java:

try (Context context = Context.create()) {
    Value function = context.eval("python", "lambda x: x + 1");
    assert function.canExecute();
    int x = function.execute(41).asInt();
    assert x == 42;
}

Функция Python увеличивает единицу предоставленного значения, а затем возвращает его на основной язык. В Java в целях безопасности мы сначала спрашиваем, может ли функция переменной быть выполнена через canExecute() вызов, а затем вызываем функцию с помощью execute() вызов. Дополнительные примеры можно найти в справочной документации по Embedding Languages .

Поддержка языка и среды выполнения

[ редактировать ]

GraalVM написан для экосистемы Java . Он может запускать приложения, написанные на всех языках, которые компилируются в формат байт-кода Java , например, Java, Scala , Kotlin и других.

На основе платформы реализации языка Truffle для использования с GraalVM разработаны следующие дополнительные языки:

Поддержка дополнительных языков может быть реализована пользователями GraalVM. Некоторые известные реализации сторонних языков: grCuda, [36] СОМнс, [37] ТрюфельСкрип, [38] [39] и Йона. [40]

Принятие

[ редактировать ]

GraalVM используется в различных промышленных сценариях:

  1. ^ «Загрузки» .
  2. ^ «Часто задаваемые вопросы по GraalVM» . Архивировано из оригинала 13 апреля 2020 г. Проверено 25 апреля 2018 г.
  3. ^ "graal/README.md" . Гитхаб . Проверено 25 апреля 2018 г.
  4. ^ «Для создания программ, которые работают быстрее где угодно: Oracle GraalVM Enterprise Edition» . Корпорация Оракл . Проверено 21 января 2022 г.
  5. ^ «Примечания к выпуску GraalVM для JDK 22» . Примечания к выпуску GraalVM для JDK 22 . Корпорация Оракл . Проверено 26 марта 2024 г.
  6. ^ Jump up to: а б «Почему GraalVM» . Проверено 25 апреля 2018 г.
  7. ^ «Грааль: динамический компилятор для Java» . www.lemondeinformatique.fr. 13 февраля 2012 г. Проверено 23 августа 2013 г.
  8. ^ Jump up to: а б «Справочное руководство по приложениям Полиглот» . Архивировано из оригинала 23 октября 2020 г. Проверено 25 апреля 2018 г.
  9. ^ « Метациркулярность близка», GraalVM, подкаст Truffle-airhacks.fm: Блог Адама Бьена» . Архивировано из оригинала 29 мая 2020 г.
  10. ^ «OpenJDK: Грааль» .
  11. ^ «Родные образы» . www.graalvm.org . Архивировано из оригинала 20 апреля 2018 г.
  12. ^ «Экосистема с открытым исходным кодом GraalVM» . Корпорация Оракл . Проверено 11 сентября 2019 г.
  13. ^ «Документация Spring Native Image» . Весенний фреймворк . Проверено 26 октября 2021 г.
  14. ^ «Предварительная компиляция (AOT) может появиться в OpenJDK HotSpot в Java 9» . InfoQ.com. 01.10.2016 . Проверено 6 октября 2016 г. AOT представляет новый инструмент под названием «jaotc», который использует Graal в качестве бэкэнда (для генерации кода).
  15. ^ Владимир Козлов (14 сентября 2016 г.). «JDK-8166089: Предварительная компиляция» . Корпорация Оракл . Проверено 6 октября 2016 г. Скомпилируйте классы Java приложения в собственный код перед запуском виртуальной машины.
  16. ^ Владимир Козлов (13 октября 2016 г.). «JEP 295: Предварительная компиляция» . Корпорация Оракл . Проверено 13 октября 2016 г. Скомпилируйте классы Java в собственный код перед запуском виртуальной машины.
  17. ^ Владимир Козлов (20 октября 2017 г.). «JEP 317: Экспериментальный JIT-компилятор на основе Java» . Корпорация Оракл . Проверено 21 января 2018 г. JEP 317: Экспериментальный JIT-компилятор на основе Java
  18. ^ «OpenJDK: Грааль» . openjdk.java.net .
  19. ^ «[JDK-8232118] Добавьте опцию JVM, чтобы включить компиляторы JVMCI в режиме продукта» . bugs.openjdk.java.net .
  20. ^ «GraalVM: Справочное руководство: Собственный образ» . graalvm.org .
  21. ^ «Трюфель: самооптимизирующаяся система выполнения» (PDF) . Корпорация Оракл . Проверено 23 августа 2013 г.
  22. ^ «Трюфель подается в Святом Граале: Грааль и Трюфель для интерпретации полиглотов на JVM» . 05.12.2017 . Проверено 25 апреля 2018 г.
  23. ^ «Трюфель: языки и материал» . Суть .
  24. ^ Ван Де Вантер, Майкл; Ситон, Крис; Хаупт, Майкл; Хьюмер, Кристиан; Вюртингер, Томас (9 марта 2018 г.). «Быстрая, гибкая, многоязычная инструментальная поддержка отладчиков и других инструментов». Искусство, наука и инженерия программирования . 2 (3, статья 14): 30. arXiv : 1803.10201 . doi : 10.22152/programming-journal.org/2018/2/14 . S2CID   4382172 .
  25. ^ «Начало работы с инструментами в GraalVM» . www.graalvm.org . Проверено 08 апреля 2019 г. Truffle Инструменты могут отслеживать очень детальные события времени выполнения на уровне виртуальной машины для профилирования, проверки и анализа поведения приложений, работающих на GraalVM, во время выполнения.
  26. ^ «Инструменты отладки и мониторинга GraalVM» . www.graalvm.org . Архивировано из оригинала 25 апреля 2019 г. Проверено 08 апреля 2019 г. GraalVM предоставляет разработчикам, интеграторам и ИТ-администраторам набор инструментов для отладки и мониторинга GraalVM и развернутых приложений.
  27. ^ «Инструменты разработчика Chrome» . Developers.google.com . Проверено 08 апреля 2019 г. Chrome DevTools — это набор инструментов веб-разработчика, встроенных непосредственно в браузер Google Chrome. DevTools может помочь вам оперативно редактировать страницы и быстро диагностировать проблемы, что в конечном итоге поможет вам быстрее создавать более качественные веб-сайты.
  28. ^ «Трюфель: самооптимизирующаяся система выполнения» (PDF) . Корпорация Оракл . Проверено 23 августа 2013 г.
  29. ^ Репозиторий GitHub JavaScript GraalVM
  30. ^ Репозиторий GraalPython на GitHub
  31. ^ Репозиторий GitHub GraalVM LLVM Runtime
  32. ^ «Репозиторий GraalWasm на GitHub» . Гитхаб .
  33. ^ Прокопец, Александр (02 декабря 2019 г.). «Анонсируем GraalWasm — движок WebAssembly в GraalVM» . Середина . Проверено 15 января 2020 г.
  34. ^ Репозиторий GitHub TruffleRuby
  35. ^ Репозиторий GitHub GraalVM FastR
  36. ^ Репозиторий grCuda на GitHub
  37. ^ Репозиторий SOMns на GitHub
  38. ^ Репозиторий TruffleSqueak на GitHub.
  39. ^ Ниефаус, Фабио; Фельгентрефф, Тим; Хиршфельд, Роберт (2019). «GraalSqueak: К платформе инструментов на базе Smalltalk для полиглотного программирования» . Материалы 16-й Международной конференции ACM SIGPLAN по управляемым языкам программирования и средам выполнения — MPLR 2019 . Цифровая библиотека ACM. стр. 14–26. дои : 10.1145/3357390.3361024 . ISBN  9781450369770 . S2CID   204728643 . Проверено 8 ноября 2020 г.
  40. ^ Язык Йона
  41. ^ «Повышение производительности разработчиков в Disney с помощью бессерверных технологий и открытого исходного кода | Блог AWS с открытым исходным кодом» . aws.amazon.com . 09.11.2022 . Проверено 5 июля 2023 г.
  42. ^ «ГраальВМ в Facebook» . 10 июля 2021 г.
  43. ^ «Как Oracle GraalVM усовершенствовал платформу микросервисов Twitter» (PDF) .
  44. ^ «Одна виртуальная машина, чтобы управлять ими всеми? Уроки, извлеченные с помощью GraalVM | Карри в Лондоне! ​​2019» . www.curry-on.org . Проверено 5 июля 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d51f1a6150cbe526bc140ec8904af54e__1715925900
URL1:https://arc.ask3.ru/arc/aa/d5/4e/d51f1a6150cbe526bc140ec8904af54e.html
Заголовок, (Title) документа по адресу, URL1:
GraalVM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)