Ich habe eine C++ - Bibliothek, die viel größeren Code generiert, den ich wirklich für das, was es tut, erwarten würde. Aus weniger als 50 K Zeilen Quelle bekomme ich gemeinsame Objekte, die fast 4 MB sind und statische Archive 9 drücken. Dies ist problematisch, sowohl weil die Bibliothek binaries ziemlich groß sind, und viel schlimmer, sogar einfache Anwendungen, die dagegen verlinken, erhalten typischerweise 500 bis 1000 KB in Codegröße. Das Kompilieren der Bibliothek mit Flags wie -Os hilft zwar etwas, aber nicht wirklich sehr.Was sind einige Techniken oder Tools zum Profilieren übermäßiger Code-Größe in C/C++ - Anwendungen?
Ich habe auch mit GCCs -frepo-Befehl experimentiert (obwohl die gesamte Dokumentation, die ich gesehen habe, unter Linux collect2 doppelte Vorlagen zusammenführen würde) und explizite Template-Instantiierung auf Vorlagen, die "wahrscheinlich" viel zu duplizieren scheinen , aber in beiden Fällen keine wirkliche Wirkung. Natürlich sage ich "wahrscheinlich", weil blindes Raten wie bei jeder Art von Profilerstellung fast immer falsch ist.
Gibt es ein Tool, das es einfach macht, die Code-Größe zu profilieren, oder eine andere Möglichkeit, herauszufinden, was so viel Platz in Anspruch nimmt, oder allgemein andere Dinge, die ich ausprobieren sollte? Etwas, das unter Linux funktioniert, wäre ideal, aber ich nehme, was ich bekommen kann.
Es ist nicht "-W1", es ist '-Wl' –
@FX - Danke für das Erkennen. Ich habe es behoben. –