Kernel-Entwickler will der "Abhängigkeitenhölle" entkommen
Zusammenfassung
Ingo Molnar stellte im Januar 2022 das Projekt „Fast Kernel Headers“ vor, eine umfassende Überarbeitung der rund 10.000 Header-Dateien des Linux-Kernels. Mit über 2200 Patches, die mehr als die Hälfte aller Quelldateien änderten, sollte die „Abhängigkeitenhölle“ aufgelöst werden. Laut ersten Benchmarks verkürzte sich die Build-Zeit um 78 Prozent, bei inkrementellen Builds teils um deutlich mehr.
Ideen
- Verflochtene Header-Abhängigkeiten zwingen den Compiler, unnötig viel Code zu verarbeiten.
- Typen- und API-Definitionen wurden voneinander getrennt.
- Inline-Funktionen wanderten aus Headern heraus.
- Header sollten eigenständig übersetzbar werden.
Einsichten
- Technische Schulden in der Build-Struktur kosten bei großen Projekten täglich viel Rechenzeit.
- Sehr große Umbauten sind schwer in den Hauptzweig zu bringen, selbst wenn sie messbar helfen.
Fakten
- Die Patches waren auf vier CPU-Architekturen portiert.
- Greg Kroah-Hartman gab die erste, positive Rückmeldung.
Referenzen
Kritik
- Die Meldung übernimmt die Benchmark-Zahlen des Autors, unabhängige Messungen fehlen.
Empfehlungen
- Nutze ccache oder inkrementelle Builds, um Kernel-Übersetzungen zu beschleunigen.
- Halte in eigenen C-Projekten Header schlank und vermeide unnötige gegenseitige Einbindungen.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.