Buck: Facebook meldet 30 Prozent kürzere Android-Builds

Facebook hat am 9. November 2017 eine neue Methode zur Erstellung von Java-Schnittstellen für das Build-System Buck freigegeben. Im Instagram-Testprojekt verkürzte sie nach Angaben des Unternehmens die Build-Zeit um 30 Prozent. Die Änderung steht im Open-Source-Repository zur Verfügung.

Buck verwendet sogenannte Stub-JARs, die Schnittstellen einer Bibliothek enthalten, aber etwa Methodenrümpfe auslassen. Andere Bibliotheken können dadurch weitergebaut werden, ohne sämtliche Implementierungsdetails ihrer Abhängigkeiten zu benötigen. Die neue Variante erzeugt diese Schnittstellen weitgehend direkt aus dem Quelltext.

Weniger Abhängigkeiten zwischen Build-Schritten

Die quelltextbasierte Erzeugung erlaubt mehr parallele Arbeit. Facebook meldet für Instagram eine um 77 Prozent geringere Tiefe des Abhängigkeitsgraphen und 50 Prozent weniger Cache-Abrufe. Das sind Ergebnisse dieses Projekts, kein allgemeiner Vergleich aller Android-Anwendungen und keine Messung der späteren Spieleleistung.

Nicht jeder Quelltext funktioniert unverändert. Vollständige Klassennamen können nötig sein; Konstanten und Annotation-Prozessoren verlangen besondere Behandlung. Die anschließende vollständige Kompilierung prüft die beim Erzeugen der Schnittstellen getroffenen Annahmen. Einzelne Regeln lassen sich von der neuen Methode ausnehmen.

Quelltextbasierte Erzeugung ist nicht der Standard

Die Buck-Konfigurationsdokumentation vom November 2017 unterscheidet class, source und source_only. Standard bleibt class. Für den Wechsel zu source_only gibt es den Übergangsmodus migrating_to_source_only und Korrekturhilfen über buck fix. Die Einstellung ist daher nicht mit einer automatisch aktiven Beschleunigung gleichzusetzen.

Ein Dienst wie Google Container Builder führt Build-Schritte auf entfernter Infrastruktur aus. Buck setzt hier innerhalb der Java-Kompilierung an. Für Android-Entwicklung betrifft das die Wartezeit zwischen Codeänderung und neuem Build, nicht den Betrieb der fertigen Anwendung.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein