Ana içeriğe geç
Programlama

Rust enum yapısını 64 bit sözcükle değiştirmek Plush yorumlayıcısını yüzde 17 hızlandırdı

Öne çıkanlar

  • Rust enum yapısının yerini alan 64 bitlik etiketleme şeması, Plush yorumlayıcısına yüzde 17 hız kazandırdı.
  • Nesne boyutunun 16 bayttan 8 bayta inmesiyle bazı testlerde bellek kullanımı yüzde 37 oranında azaldı.
  • İşaretçi hizalamasından yararlanan tasarım, tamsayı ve kayan noktalı sayıları tek bir sözcükte paketliyor.

Plush programlama dilinin yorumlayıcısında 16 baytlık standart Rust enum yapısı yerine 64 bitlik düşük bit etiketleme yöntemi kullanılmaya başlandı. Değişiklik sayesinde değerlerin bellekte kapladığı alan yarı yarıya azaldı ve yorumlayıcı genelinde ortalama yüzde 17 performans artışı elde edildi. Geliştirici, hizalama kısıtlamaları nedeniyle 128 bit yer kaplayan eski yapının önbellek verimini düşürdüğünü belirtti.

Yeni mimaride 64 bitlik bir tamsayı sarmalayıcısı kullanılıyor. Yapı; 62 bitlik tamsayıları, kayan noktalı sayıları, sabitleri ve iki tür işaretçiyi doğrudan 64 bitlik tek bir sözcük içinde kodluyor. Bellek adreslerinin 8 baytlık hizalama zorunluluğundan doğan son 3 boş bit ile tamsayıların düşük bitleri bu amaçla değerlendirildi. Kayan noktalı sayılar için kendi kendini etiketleyen özel bir matematiksel öteleme yaklaşımı benimsendi.

MacBook Air M5 üzerinde yapılan sentetik testlerde bellek kullanımının kimi senaryolarda yüzde 37'ye kadar gerilediği gözlemlendi. Kayan noktalı sayı işlemlerinde paketleme ve çözme ek talimat gerektirmesine rağmen önbellek trafiğinin azalması tüm testlerde hız kazanımı sağladı. Sonuçlar, dinamik dillerde bellek ayak izini düşürmenin doğrudan işlemci hızını da artırdığını kanıtladı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.