Tengo una biblioteca de C++ que genera un código mucho más grande que realmente esperaría para lo que está haciendo. De menos de 50K líneas de fuente, obtengo objetos compartidos que son casi 4 MB y archivos estáticos que presionan 9. Esto es problemático porque los binarios de la biblioteca son bastante grandes, y, lo que es peor, incluso las aplicaciones simples que se vinculan normalmente ganan de 500 a 1000 KB en el tamaño del código. Compilar la biblioteca con indicadores como -Os ayuda un poco, pero no mucho.¿Cuáles son algunas técnicas o herramientas para perfilar un tamaño de código excesivo en aplicaciones C/C++?
También experimenté con el comando -frepo de GCC (aunque toda la documentación que he visto sugiere que en Linux collect2 se fusionarán las plantillas duplicadas) y la creación de instancias explícitas de plantillas que parecían "probablemente" duplicadas mucho , pero sin efecto real en ninguno de los casos. Por supuesto que digo "probable" porque, como con cualquier tipo de perfil, las conjeturas ciegas como esta casi siempre son incorrectas.
¿Hay alguna herramienta que facilite el tamaño del código de perfil, o de alguna otra manera puedo averiguar qué ocupa tanto espacio, o, en general, cualquier otra cosa que deba probar? Algo que funcione bajo Linux sería ideal pero tomaré lo que pueda obtener.
No es '-W1', es' -Wl' –
@FX - Gracias por detectar eso. Lo he arreglado –