Home

Kompilierzeit

Kompilierzeit bezeichnet in der Softwareentwicklung die Zeit, die ein Compiler benötigt, um Quellcode in Objektcode oder Zwischenformen zu übersetzen und damit den Build-Prozess voranzutreiben. Sie ist eine Untergröße der Buildzeit und unterscheidet sich von der Laufzeit, also der Zeit, die das Programm beim Ausführen benötigt. Die Kompilierzeit hängt von der Größe eines Projekts, der Codebasis, der Anzahl der Quelldateien sowie der Häufigkeit und Tiefe der Header-Abhängigkeiten ab. Ebenfalls Einfluss haben Compiler-Optionen, verwendete Programmiersprachenmerkmale sowie verfügbare Module. Speicher-, Festplatten- und CPU-Leistung spielen zusätzlich eine Rolle.

Typische Einflussgrößen sind header-lastige Codebasen, umfangreiche Header-Includes, sowie der Einsatz von Templates, Makros oder Inline-Funktionen. Große

Maßnahmen zur Reduktion der Kompilierzeit umfassen die Reduzierung unnötiger Includes durch Forward-Deklarationen oder Pimpl-Idiom, der Einsatz

Die Kompilierzeit wirkt sich direkt auf die Entwicklerproduktivität aus. Sie wird in Sekunden oder Minuten pro

Projekte
erzeugen
viele
Übersetzungseinheiten
(TUs),
wodurch
sich
die
Übersetzung
zeitlich
summiert.
Die
Verbreitung
von
Modulen
(insbesondere
C++20-Module)
kann
Kompilierzeiten
deutlich
verringern,
indem
Abhängigkeiten
besser
isoliert
werden.
Auch
die
Art
des
Build-Systems,投入
inkrementelles
Bauen,
sowie
Caching-Mechanismen
beeinflussen
die
Praxis
erheblich.
von
Precompiled
Headers,
sowie
eine
klare
Trennung
von
Schnittstellen
und
Implementierungen.
Parallelisierung
von
Builds
(z.
B.
make
-j,
Ninja),
inkrementelles
Bauen
und
Caching-Lösungen
wie
ccache
oder
sccache
helfen
ebenfalls.
Eine
ausgewogene
Balance
zwischen
Compile-Time
und
Laufzeit-Performance
sowie
Wartbarkeit
sollte
beachtet
werden.
Build
gemessen,
und
Optimierungen
zielen
darauf
ab,
wiederholte
Bauvorgänge
zu
beschleunigen,
ohne
die
Laufzeit
oder
Wartbarkeit
des
Codes
zu
beeinträchtigen.