« Tüm yayınlar

Headstart: Erken metadata ile Rust derlemeleri 2 kata kadar hızlanıyor

Headstart yaması, rustc'nin erken metadata yazmasıyla Rust derlemelerini cargo check'te %54'e, build'te %42'ye kadar hızlandırıyor.

Headstart adlı deneysel yama seti, rustc ve cargo'ya iki yeni davranış ekliyor: rustc arayüz kontrolü biter bitmez bir .early-rmeta dosyası yazıyor, cargo da bağımlı crate'leri bu erken metadata üzerinden başlatıyor. Böylece bir crate'in fonksiyon gövdeleri tip kontrolünden geçerken, ona bağımlı crate'ler beklemek yerine arayüz bilgisiyle derlemeye başlayabiliyor; cargo check'te bu işlem tamamen bitebiliyor, cargo build'te ise kod üretimi öncesi tam metadata beklenip iş slotu geçici olarak geri veriliyor.

Hata durumunda sonuç ve çıkış kodu aynı kalıyor; sadece ilerleme satırlarının ve JSON mesaj sıralamasının değişebileceği belirtiliyor. Bunun bedeli, bazı aşağı akış işinin boşa gitmesi, hataların biraz geç raporlanması ve aynı anda daha fazla bellek kullanımı.

16 çekirdekli makinelerde rust-analyzer, zed, bevy, polars gibi 13 gerçek projede cargo check %54'e, cargo build %42'ye kadar hızlanmış; hiçbir proje yavaşlamamış. Paralel ön uçla (-Zthreads=8) birlikte kullanıldığında ek %25 kazanç sağlanıyor. 4 çekirdekli makinelerde kazanç daha mütevazı (rust-analyzer check %24, build %13-15) ama yine de olumlu; boşta kalan çekirdeklerden geldiği için makine büyüdükçe fayda artıyor.

Proje, derleyici ve cargo ekiplerine sunulmak üzere commit serisi halinde hazırlanmış; doğruluğu test eden betikler (hata senaryoları, artımlı derleme, metadata değişimi, 53 rustc-perf benchmarkı) ve kapsamlı benchmark araçlarıyla birlikte geliyor.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz