
rustc sentyabrda necə sürətləndi: orta kompilyasiya müddəti 4,57% azaldı
29 iyul – 28 sentyabr 2026 tarixləri arasında rustc-in orta kompilyasiya müddəti 4,57% azaldı: 629 benchmark ölçməsindən 555-i yaxşılaşdı, yalnız 74-ü pisləşdi. İcmalı Nicholas Nethercote dərc edib.
Nicholas Nethercote 30 sentyabrda Rust kompilyatorunun performansına dair növbəti icmalı dərc edib. Əvvəlki hesabatdan iki ay keçib və bu dövrdə rustc nəzərəçarpacaq dərəcədə sürətlənib.
Ümumi nəticə
29 iyul – 28 sentyabr 2026 dövrünün ölçmələrinə görə orta kompilyasiya müddəti 4,57% azalıb. 629 benchmark ölçməsindən 555-i yaxşılaşıb, yalnız 74-ü pisləşib, bir neçə benchmark isə iki rəqəmli faiz azalması göstərib. Müəllif bu nəticəni 'yaşıl dəniz' adlandırır.
rustdoc, Clippy və LLVM 23
rustdoc üzrə böyük sürətlənməni Noah Lev edib və buna necə nail olduğunu ayrı yazıda izah edib. Clippy üçün PGO-nu Jakub Beránek aktivləşdirib (#159642): Clippy benchmarklarının çoxunda wall-time yaxşılaşıb, ən yaxşı halda 18%.
Nikita Popov kompilyatorda istifadə olunan LLVM versiyasını LLVM 23-ə yeniləyib (#158734). LLVM yeniləməsi adətən sürətlənmə verir: bütün benchmarklarda orta wall-time 1,2% azalıb, bu isə bir dəyişiklik üçün əhəmiyyətlidir.
Yeni borrow checker və trait solver
Nightly kanalında yeni borrow checker Polonius Alpha aktivləşdirilib. O, daha dəqiqdir və köhnə yanaşmanın rədd etdiyi bəzi etibarlı proqramları qəbul edir, lakin daha çox iş görür və ayrı-ayrı hallarda kompilyasiya müddətini də artırır. Bu, məşhur serde kitabxanasına da təsir edib. Jack Huey (#161938) liveness hesablamalarını tələb əsaslı edib: serde üçün təlimatların sayı 3-5% azalıb. #163027-də o, məlumat strukturunu və inline etməni dəyişib, bu da əksər benchmarklarda 1%-dən az azalma verir.
Nightly-də yeni trait solver də aktivləşdirilib; o, halların kiçik bir hissəsində yavaş işləyir. Onun performansı haqqında Jana Dönszelmann ətraflı yazı yazıb. Nethercote-un dəyişiklikləri (#160479, #160605, #160801, #160892, #161077, #161211) bəzi istisna crate-lərdə kompilyasiya müddətini kəskin azaldıb: bir yerdə 50%, başqa yerdə 25%, daha bir yerdə 15%, bir stress testində isə daha çox.
xmakro və dataflow analizi
Yeni töhfəçi xmakro bir neçə optimallaşdırma təqdim edib. #157281-də o, ixtisaslaşma qrafiki qurularkən impl-lərin emalını yaxşılaşdırıb: bütün benchmarklarda dövrlərin sayı orta hesabla 1,58% azalıb. #158059-da inkremental kompilyasiya məlumatlarının yüklənməsi sürətləndirilib (ən yaxşı halda 6%), #160473-də isti obligations yolunda ayırmaları azaldıb (2%), #160268-də isə dinamik dispatch-i statik dispatch ilə əvəz edib.
Nethercote dataflow analizləri üçün CFG keçid alqoritmini dəyişib (#160193). cranelift-codegen crate-ində bir funksiyanın 18 000-dən çox əsas bloku var: köhnə alqoritmlə EverInitializedPlaces analizi fixpoint-ə çatmaq üçün 1,5 milyon çağırış tələb edirdi, yenisi ilə 90 000. Bu crate-in check yığımı üçün wall-time təxminən 30% azalıb. #160033-də EverInitializedPlaces daha da təkmilləşdirilib və match-stress benchmarkında təlimatların sayını 17% azaldıb.
Qalan dəyişikliklər arasında #160535 var; Chris Denton stack-in default ölçüsünü artırıb (ən yaxşı halda təxminən 3%). Nethercote sabah Hexcat-də rustc performansının optimallaşdırılması layihəsi üzərində işə başlayır.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.