Linux:¿Cuál es la mejor manera de estimar el código y estáticos tamaño de los datos de programa?

StackOverflow https://stackoverflow.com/questions/35485

  •  09-06-2019
  •  | 
  •  

Pregunta

Quiero ser capaz de obtener una estimación de la cantidad de código y estáticos de datos se utiliza por mi programa de C++?

Es allí una manera de encontrar esta mirando a la ejecutables o archivos objeto?O tal vez algo que se puede hacer en tiempo de ejecución?

Se objdump & readelf ayuda?

¿Fue útil?

Solución

"tamaño" es el instrumento tradicional."readelf" tiene un montón de opciones.

$ size /bin/sh
   text    data     bss     dec     hex filename
 712739   37524   21832  772095   bc7ff /bin/sh

Otros consejos

Si usted quiere tomar el siguiente paso de la identificación de las funciones y estructuras de datos que se centran en la reducción de la huella, la --tamaño-tipo de argumento para nm puede mostrar:

$ nm --size-sort /usr/bin/fld | tail -10
000000ae T FontLoadFontx
000000b0 T CodingByRegistry
000000b1 t ShmFont
000000ec t FontLoadw
000000ef T LoadFontFile
000000f6 T FontLoadDFontx
00000108 D fSRegs
00000170 T FontLoadMinix
000001e7 T main
00000508 T FontLoadBdf

readelf de hecho va a ayudar.Usted puede utilizar el -S opción;que se muestran los tamaños de todas las secciones. .text es (la mayor parte de) su código ejecutable. .data y .rodata es la estática de los datos.Hay otras secciones también, algunos de los cuales se utilizan en tiempo de ejecución, mientras que otros sólo en tiempo de vínculo.

size -A
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top