Ich habe ein großes Problem. Ich habe eine gemeinsame Bibliothek, die überall in meinem Projekt verwendet wird. Diese Bibliothek verwendet intensiv boost.spirit
und boost.fusion
. Leider ist die Bibliothek ca. 700 MB groß. Alle boost.spirit
-hoher Code wird verwendet und es funktioniert gut. Welche Schritte können unternommen werden, um die Ausgabegröße zu reduzieren? Gibt es ein Tool, mit dem Sie feststellen können, welche Template-Instanziierungen den größten Teil des Speicherplatzes verschwenden?Wie kann die Ausgabegröße von vorlagenintensivem C++ - Code reduziert werden?
Zuerst habe ich beschlossen, alle Geist-bewusst Code in CPP-Dateien zu verschieben. Zweitens werde ich verschiedene Compiler-Flags ausprobieren, um die Größe zu optimieren. Ich weiß nicht, was ich sonst tun soll.
Update (Details)
Ich verwende GNU Toolchain. Die riesige Bibliothek ist eigentlich eine statische Bibliothek. Ausführbare Datei, die diese 700 MB-Bibliothek verwendet, ist 200 MB groß. Mindestens die Hälfte des Codes befindet sich in * .h-Dateien. Einige boost.spirit
Grammatiken (sehr Template schwere Sache) befindet sich auch in * .h-Dateien.
Prost!
Vielen Dank für die Sichtbarkeit Attribut, weiß nicht darüber. – Lazin