Wenn du wissen willst, wo eine Linux-Kompilierung ihre Zeit verbrennt: Das Open-Source-Tool buildprof zeichnet jeden Prozess und alle Subprozesse eines Build-Befehls auf und legt sie auf einer gemeinsamen Zeitleiste ab. Laut der Meldung genau mit dem Ziel, schwache Parallelität oder überlange Schritte sichtbar zu machen. Der Entwickler hat es gleich selbst eingesetzt, um Buns Zig-Build unter die Lupe zu nehmen, der ganze 24 Minuten und 24 Sekunden dauerte.
Was ist buildprof überhaupt?
buildprof ist kein Hexenwerk in der Bedienung: Du stellst einfach buildprof -- vor jeden Befehl, den du ohnehin schon nutzt – also etwa buildprof -- make -j16, buildprof -- cargo build oder buildprof -- just build. Das Tool merkt sich dann jeden Prozess, den dein Build startet, samt aller Subprozesse (und deren Subprozessen…). Auf der Zeitleiste läuft die Zeit von links nach rechts, die Balkenbreite zeigt die Dauer, und Kindprozesse hängen unter dem, was sie gestartet hat. Das soll einen schnellen Blick darauf erlauben, wo sich ein Build verheddert: zu wenig Parallelität, wiederholte Arbeit, Dependency-Downloads oder ein einzelner übergroßer Compiler- und Linker-Aufruf.
Was hat das mit Bun zu tun?
Gebaut wurde das Tool nicht aus purer Langeweile, sondern wegen eines Tweets von Jarred Sumner, dem Chefarchitekten der JavaScript-Runtime Bun. Darin hieß es, Buns neuer Rust-Build sei auf Linux über 5× schneller als der alte Zig-Build. Das stieß dem Autor sauer auf, weil in seiner Erfahrung Zig-Projekte meist schneller kompiliert haben als vergleichbare Rust-Projekte. Also hat er Buns Zig-Build mit buildprof verfolgt: Insgesamt 24 Minuten und 24 Sekunden, wovon ein großer Teil auf den finalen Link-Schritt entfällt. Im Bericht steht außerdem, dass der Zig-Build mit voller LTO-Optimierung lief. Und genau hier endet leider der Quelltext, den ich vorliegen habe: Der eigentliche Vergleich, ob und warum der Rust-Build tatsächlich schneller ist, bricht ab.
Ich finde die Idee trotzdem nett, auch wenn mir der Abschluss fehlt. Langsame Builds nerven alle, die auf Linux Software kompilieren, und ein Tool, das die Schuldigen einfach sichtbar macht, statt zu blindem Raten zu zwingen, klingt nach einem echten Gewinn. Wie gut buildprof wirklich ist und ob Buns LTO-Theorie am Ende stimmt, verrate ich dir, sobald der Bericht vollständig ist. Oder du liest direkt bei der Quelle lalitm.com nach, dies ist die Meldung der Woche unter den Build-Tools. Bereut Sumner hinterher eigentlich, dass er den Tweet abgesetzt hat?
Näheres bei: Quelle
1 Kommentar zu „buildprof: Dieses Open-Source-Tool macht langsame Linux-Builds sichtbar“