Ana Sayfa

Ruby 4.0'da Yeni JIT Derleyici ZJIT Kullanıma Sunuldu

1 dk okuma

Ruby'nin referans uygulaması YARV'ye entegre edilen yeni bir just-in-time (JIT) derleyici olan ZJIT, Ruby 4.0 ile birlikte kullanıma sunuldu. YJIT'i geliştiren aynı ekip tarafından bu yılın başından beri üzerinde çalışılan ZJIT, Ruby'nin performans tavanını yükseltmeyi ve dışarıdan katkıları teşvik etmeyi hedefliyor. Ruby 4.0'da varsayılan olarak derlenmiş ancak etkinleştirilmemiş durumda gelen ZJIT, --zjit bayrağı veya RUBY_ZJIT_ENABLE ortam değişkeni ile ya da uygulama başlatıldıktan sonra RubyVM::ZJIT.enable çağrısı ile aktif hale getirilebiliyor.

ZJIT, şu an için yorumlayıcıdan daha hızlı olsa da, henüz YJIT kadar performanslı değil. Ancak geliştirici ekip, YJIT'in performansına ulaşmak için detaylı bir plana sahip. Mayıs ayından bu yana önemli ilerlemeler kaydedildi; örneğin, JIT kodundan yorumlayıcıya güvenli bir şekilde yan çıkışlar (side-exit) yapabilme özelliği eklendi. Bu sayede, tamsayıdan dizeye geçiş gibi faz geçişleri sorunsuz bir şekilde ele alınabiliyor. Ayrıca, başlangıçta sadece birkaç küçük kıyaslamayı çalıştırabilirken, artık tüm Ruby test paketini, Shopify ve GitHub.com gibi büyük uygulamaların test paketlerini ve gölge trafiğini başarıyla çalıştırabiliyor.

Derleyici, başlangıçta sadece küçük tamsayılar (fixnum) ve ana nesneye yapılan metod çağrıları gibi sınırlı optimizasyonlar yaparken, şimdi çok daha fazla optimizasyonu destekliyor. Çeşitli metod çağrıları, örnek değişken okuma ve yazma işlemleri, nitelik erişimcileri ve yapı okuma-yazma işlemleri gibi birçok alanda iyileştirmeler yapıldı. Geliştiriciler, ZJIT'i yerel ortamda denemeye teşvik ediyor ancak henüz üretim ortamında kullanılmamasını tavsiye ediyorlar. Yeni bir derleyici olduğu için beklenmedik hatalar veya performans düşüşleri yaşanabileceği belirtiliyor ve geri bildirimler Ruby hata takip sistemine veya GitHub'a iletilmeye bekleniyor.

İçgörü

Ruby'nin gelecekteki performansını ve geliştirici deneyimini önemli ölçüde etkileyecek yeni bir JIT derleyicinin temel taşları atıldı.

Kaynak