clang-cl und lld verkürzen Windows-Linkzeiten

Das LLVM-Projekt beschreibt am 8. Januar 2018 eine neue Technik für clang-cl und lld, die das Linken großer Windows-Projekte beschleunigen soll. Im Mittelpunkt steht die Verarbeitung von Debug-Informationen im PDB-Format, die beim Zusammenführen vieler C++-Objektdateien einen großen Teil der Rechenzeit beansprucht.

Die Lösung ergänzt die PE/COFF-Dateien um einen Hashbereich. Der Compiler bereitet damit Informationen vor, die der Linker für die Typzusammenführung benötigt. lld-link kann die Datensätze anschließend über eindeutige Hashwerte identifizieren, statt die Typinformationen aller Eingabedateien vollständig gegeneinander zu vergleichen.

Bis zu 30 Prozent kürzere Linkzeit in den Tests

LLVM vergleicht den Ansatz mit Microsofts /DEBUG:FULL und /DEBUG:FASTLINK sowie mit zwei lld-link-Konfigurationen. Bei den getesteten Targets blink_core.dll, content.dll, chrome.dll und clang.exe lag lld-link mit /DEBUG:GHASH bis zu 30 Prozent unter der Linkzeit von lld-link mit vollständiger Typzusammenführung. Eine inkrementelle Verlinkung unterstützt lld zu diesem Zeitpunkt noch nicht.

Für Studios und technische Teams ist der Befund vor allem bei großen C++-Projekten relevant. Kürzere Linkvorgänge verkürzen die Zeit zwischen einer Änderung und dem nächsten Testlauf. Der Ansatz ist eine Ergänzung zu bestehenden Build-Werkzeugen und setzt voraus, dass die Objektdateien den neuen Debug-Informationsbereich erzeugen. Frühere LLVM-Arbeiten wie LLVM 5.0 hatten bereits die Compiler- und Werkzeugseite der Infrastruktur behandelt.

Die Autoren nennen zugleich Grenzen. Die Objektdateien werden im Mittel größer, und eine Mischung aus Dateien mit und ohne den neuen Bereich erfordert zusätzliche Entscheidungen beim Linken. Die vorgestellten Messwerte beschreiben daher einen Entwicklungsstand und keine allgemeine Zusage für jedes Windows-Projekt.

Weitere News

Weitere News

Kommentieren Sie den Artikel

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