tgoop.com/linux_gram/8682
Last Update:
Ruby представил новый JIT-компилятор ZJIT — будущая замена YJIT
В кодовую базу эталонной реализации языка Ruby добавлен новый JIT-компилятор ZJIT, позиционируемый как следующее поколение Ruby JIT. ZJIT войдёт в состав следующего значительного выпуска Ruby 3.5, в котором будет доступен в качестве опции параллельно с JIT-компилятором YJIT, а в версии Ruby 3.6 возможно заменит его. Как и YJIT новый JIT-компилятор написан на языке Rust.
Цель: Ускорение Ruby on Rails → разработан Shopify на Rust (как и YJIT).
Отличия от YJIT:
— Промежуточное представление: ZJIT использует SSA (высокоуровневое) → позволяет сложные оптимизации (inline-развёртывание, анализ крупных блоков).
— Компиляция: Целиком метод → YJIT работал с отдельными базовыми блоками.
— Профилирование типов: Классический подход (история типов) → проще для разработки, чем LBBV в YJIT.
Преимущества ZJIT:
— Основа для многоуровневой JIT в будущем.
— Упрощённая кодовая база → привлечение новых контрибьюторов (YJIT был сложен из-за LBBV).
— Потенциал для более агрессивных оптимизаций.
Перспективы:
— ZJIT решает проблемы масштабируемости YJIT.
— Shopify продолжит улучшать производительность Ruby для высоконагруженных приложений.
Linux / Линукс