Linux için geliştirilen buildprof yazılım derleme sürelerini görselleştiriyor
Öne çıkanlar
- buildprof, ptrace ve seccomp ile tüm derleme süreç ağacını zaman çizelgesine döküyor.
- Bun'ın Zig sürümündeki 24 dakikalık derleme süresinin 16 dakikasını Full LTO bağlama adımı oluşturdu.
- ThinLTO yapılandırması ve harici kütüphane optimizasyonuyla Zig derleme süresi 15 dakikaya indi.
- Rust sürümünün temel hız avantajının projeyi 90'dan fazla bağımsız crate yapısına bölmesinden geldiği saptandı.
Yazılım geliştiricisi Lalit Maganti, Linux üzerinde yazılım derleme süreçlerinin nerelerde vakit kaybettiğini ayrıntılı şekilde gösteren açık kaynaklı buildprof aracını duyurdu. Maganti, JavaScript çalışma ortamı Bun'ın Rust tabanlı yeni sürümünün eski Zig sürümüne kıyasla Linux üzerinde beş kattan fazla hızlı derlendiği iddiasını araştırmak üzere bu aracı geliştirdiğini belirtti. Test ortamında Bun'ın Zig sürümünün 24 dakika 24 saniye, Rust sürümünün ise 5 dakika 40 saniye sürdüğünü doğrulayan geliştirici, sürecin alt kırılımlarını inceledi.
buildprof ile yapılan analizler, Zig derlemesindeki devasa sürenin temel nedeninin Full LTO bağlantı aşaması olduğunu ortaya çıkardı. Bağlayıcı adımının tek başına 16 dakikadan uzun sürdüğü ve projeye indirilen harici WebKit kütüphanelerinin de Full LTO bayraklarıyla paketlendiği anlaşıldı. WebKit arşivlerini ThinLTO ile yeniden derleyen ve Bun derleme bayraklarını güncelleyen Maganti, derleme süresini 15 dakika 11 saniyeye indirmeyi başardı. Geriye kalan süre farkının ise Rust projesinin 90'dan fazla crate yapısıyla paralel derlenmesinden kaynaklandığı belirlendi.
Teknik altyapısında Linux'un ptrace arayüzünü ve seccomp filtrelerini kullanan buildprof, derleme komutlarının başlattığı tüm alt süreçleri ve dosya bağımlılıklarını hiyerarşik bir zaman çizelgesinde sunuyor. Arayüz tarafında Perfetto altyapısından yararlanan araç, Cargo, Ninja, Make gibi farklı derleme sistemlerinin tamamıyla ek bir entegrasyona ihtiyaç duymadan çalışabiliyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.