Unity Builds: Vorteile und Fallstricke
In Visual Studio C ist es möglich, Konfigurationen wie „Release All“ und „Debug All“ zu erstellen, die ein einzelnes ALL erstellen. cpp-Datei, die alle anderen .cpp-Dateien enthält. Dieser Ansatz bietet zwar bemerkenswerte Vorteile, birgt aber auch gewisse Herausforderungen.
Vorteile
-
Schnelle Kompilierung und Verknüpfung: Unity-Builds werden erheblich reduziert Kompilierungs- und Verknüpfungszeit, da der Compiler Dateien nur einmal verarbeitet.
-
Parallel Kompilierung:Visual Studio kann mehrere Teile des Codes parallel kompilieren und so die Build-Geschwindigkeit weiter verbessern.
Stolperfallen
-
Wartungsprobleme: Die Verwaltung einer großen ALL.cpp-Datei kann mühsam sein, insbesondere wenn Änderungen vorgenommen werden oder Refactoring.
-
Namespace-Offenlegung: Anonyme Namespaces sind nicht mehr für einzelne .cpp-Dateien privat, sodass Variablen und Funktionen in der gesamten Kompilierungseinheit sichtbar sind. Dies kann zu Namenskonflikten und Codeverwirrung führen.
-
DLL-Kompatibilität: Anonyme Namespaces sind für Daten in DLLs ungeeignet, da sie von anderen Modulen, die dieselbe DLL verwenden, geändert werden könnten. Allerdings sind Funktionen innerhalb anonymer Namespaces akzeptabel.
Zusätzliche Erkenntnisse
Diese Vorgehensweise wird als „Unity Build“ bezeichnet. Es eignet sich hervorragend für Umgebungen, in denen keine inkrementelle Erstellung erforderlich ist, beispielsweise bei Release-Builds von einem zentralen Server. Aufgrund seiner Wartungsherausforderungen ist es jedoch normalerweise nicht für die iterative Entwicklung geeignet.
Weitere Informationen finden Sie im Folgenden Ressourcen:
- https://buffered.io/posts/the-magic-of-unity-builds/
- http://randomascii.wordpress.com/2014/03 /22/make-vc-compiles-fast-through-parallel-compilation/
Das obige ist der detaillierte Inhalt vonUnity-Builds in C: Geschwindigkeitssteigerung oder Wartungsalbtraum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn