Языки программирования

JRuby 10 ускоряет время запуска

JRuby 10 ускоряет время запуска

JRuby 10, последний выпуск варианта языка Ruby, построенного на базе JVM, принес улучшения времени запуска, поддержку Java 21 и совместимость с Ruby 3.4.

Релиз JRuby 10 был анонсирован 14 апреля. JRuby 10 можно загрузить с сайта jruby.org.

По словам члена основной команды JRuby Чарльза Оливера Наттера, JRuby 10 предлагает обновленную совместимость с Ruby, поддержку современных функций JVM, а также чистку внутреннего кода и внешних API, что делает его самым важным релизом JRuby в истории.

Благодаря поддержке Java 21, самой последней версии Java с долгосрочной поддержкой, JRuby переходит от поддержки Java 8 к интеграции функций Java 21. Команда JRuby планирует донести до пользователей Ruby 10-летние улучшения JVM. Для решения проблемы медленного запуска, которая была названа жалобой номер один от пользователей JRuby, JRuby 10 использует новые возможности JVM, включая:

  • Хранилище данных класса приложения (AppCDS) - функция OpenJDK, которая позволяет предварительно кэшировать код и метаданные во время запуска, чтобы снизить стоимость последующих команд.
  • Project CRaC (Coordinated Restore at Checkpoint) - экспериментальная функция, позволяющая пользователям «ставить контрольную точку» на запущенном процессе и запускать несколько будущих процессов, восстанавливая эту контрольную точку.
  • Project Leyden - проект OpenJDK, призванный улучшить время запуска, время выхода на пик производительности и занимаемую площадь Java-программами. Команда JRuby будет включать флаги Leyden в программу запуска JRuby по мере их появления.

По словам Наттера, эти возможности в сочетании с уменьшенным флагом --dev обеспечивают самый быстрый запуск JRuby в истории.

Совместимость с Ruby 3.4 позволила команде JRuby реализовать в JRuby 10 функции Ruby 3.2, Ruby 3.3 и Ruby 3.4. В новом выпуске JRuby по умолчанию используется полная оптимизация invokedynamic, обеспечивающая наилучшую производительность скриптов и приложений JRuby без передачи дополнительных флагов. Предыдущие версии JRuby по умолчанию работали на «среднем уровне» оптимизации, используя invokeddynamic оптимизацию только для простых операций с Ruby.

JRuby может быть развернут на Linux, macOS, Windows и других платформах, таких как Solaris и BSD. Приложения могут быть развернуты вместе с корпоративными Java-приложениями, использующими Spring или Jakarta EE. Кроме того, планируется быстрое обновление для решения возникающих в последний момент проблем. Разработчики могут сообщить об ошибках, замеченных во время тестирования JRuby 10, на странице JRuby GitHub.JRuby 10 обеспечивает более быстрое время запускаЛучшая версия реализации Ruby для JVM также обновляет поддержку версий Java и совместимость с языком Ruby.