Geri Dön
rustc Eylül'de nasıl hızlandı: ortalama derleme süresi %4,57 azaldı
SiTech AI Team2 წთ. საკითხავი

rustc Eylül'de nasıl hızlandı: ortalama derleme süresi %4,57 azaldı

29 Temmuz - 28 Eylül 2026 arasında rustc'in ortalama derleme süresi %4,57 azaldı: 629 benchmark ölçümünden 555'i iyileşti, yalnızca 74'ü kötüleşti. İncelemeyi Nicholas Nethercote yayımladı.

Nicholas Nethercote, 30 Eylül'de Rust derleyicisinin performansına dair bir başka incelemeyi yayımladı. Önceki rapordan bu yana iki ay geçti ve bu dönemde rustc belirgin şekilde hızlandı.

Genel sonuç

29 Temmuz - 28 Eylül 2026 dönemi ölçümlerine göre ortalama derleme süresi %4,57 azaldı. 629 benchmark ölçümünden 555'i iyileşti, yalnızca 74'ü kötüleşti ve birkaç benchmark çift haneli yüzde düşüş gösterdi. Yazar bu sonucu 'yeşil deniz' olarak adlandırıyor.

rustdoc, Clippy ve LLVM 23

rustdoc'ta büyük hızlanmayı Noah Lev gerçekleştirdi ve buna nasıl ulaştığını ayrı bir yazıda açıkladı. Clippy için PGO'yu Jakub Beránek etkinleştirdi (#159642): Clippy benchmark'larının çoğunda wall-time iyileşti, en iyi durumda %18.

Nikita Popov derleyicide kullanılan LLVM sürümünü LLVM 23'e güncelledi (#158734). LLVM güncellemesi genellikle hızlanma sağlar: tüm benchmark'larda ortalama wall-time %1,2 azaldı; bu, tek bir değişiklik için önemlidir.

Yeni borrow checker ve trait solver

Nightly kanalında yeni borrow checker Polonius Alpha etkinleştirildi. Daha hassastır ve eski yaklaşımın reddettiği bazı geçerli programları kabul eder; ancak daha fazla iş yapar ve bazı durumlarda derleme süresini de artırır. Bu, popüler serde kütüphanesini de etkiledi. Jack Huey (#161938) liveness hesaplamalarını talep üzerine hale getirdi: serde için talimat sayısı %3-5 azaldı. #163027'de veri yapısını ve inline etmeyi değiştirdi; bu, çoğu benchmark'ta %1'den az düşüş sağlıyor.

Nightly'de yeni trait solver da etkinleştirildi; vakaların küçük bir kısmında yavaş çalışıyor. Jana Dönszelmann performansı hakkında ayrıntılı bir yazı yazdı. Nethercote'un değişiklikleri (#160479, #160605, #160801, #160892, #161077, #161211) bazı istisnai crate'lerde derleme süresini keskin biçimde azalttı: bir yerde %50, başka bir yerde %25, bir başkasında %15, bir stres testinde daha da fazla.

xmakro ve dataflow analizi

Yeni katkıcı xmakro birkaç optimizasyon sundu. #157281'de özelleştirme grafiği oluşturulurken impl işlemesini iyileştirdi: tüm benchmark'larda döngü sayısı ortalama %1,58 azaldı. #158059'da artımlı derleme verilerinin yüklenmesi hızlandı (en iyi durumda %6), #160473'te sıcak obligations yolundaki ayırmaları azalttı (%2) ve #160268'de dinamik dispatch'i statik dispatch ile değiştirdi.

Nethercote, dataflow analizleri için CFG geçiş algoritmasını değiştirdi (#160193). cranelift-codegen crate'inde bir fonksiyonun 18.000'den fazla temel bloğu var: eski algoritmayla EverInitializedPlaces analizi fixpoint'e ulaşmak için 1,5 milyon çağrı gerektiriyordu; yenisiyle 90.000. Bu crate'in check derlemesi için wall-time yaklaşık %30 azaldı. #160033'te EverInitializedPlaces daha da iyileştirildi ve match-stress benchmark'ında talimat sayısı %17 azaldı.

Kalan değişiklikler arasında #160535 var; Chris Denton varsayılan yığın boyutunu artırdı (en iyi durumda neredeyse %3). Nethercote yarın Hexcat'te rustc performansını optimize etme projesinde çalışmaya başlıyor.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.