2011-10-24 4 views
6

Estoy desarrollando S/W para algún dispositivo que utilice Linux O.S. Entonces, el tamaño de las bibliotecas (RAM/ROM) que uso es muy importante.Medir el tamaño de las bibliotecas en Linux

¿Cómo puedo calcular fácilmente la RAM/ROM requerida por mi software? (incluidas las bibliotecas que utilicé). Creo que es una pregunta demasiado fácil para el desarrollador experimentado de Linux.

+1

Esto es, de hecho, una pregunta difícil. Si su programa utiliza asignación de memoria dinámica 'malloc' o tiene patrones de llamada no triviales (especialmente si tiene recursividad), es imposible incluso teóricamente predecir cuánta memoria RAM se necesitará para el montón/pila. Hay analizadores que funcionan razonablemente bien para determinar los requisitos de pila para los programas integrados típicos, pero a menudo no son baratos. – Gilles

Respuesta

3

Run

size <object> 

o

size <archive> 

o

size <shared-object> 

. (O "Destino-" tamaño en caso de que esté compilación cruzada: el brazo de tamaño si está usando el brazo-gcc)

que le dará una tabla

text data  bss  dec  hex filename 

donde el texto es programa- tamaño, bss los globales globales y datos de solo lectura.

Si bien esto responde a su pregunta, probablemente desee utilizar un LdScript específico (cuando usa ld como vinculador) donde colocará las secciones en las memorias disponibles manualmente al hacer el enlace final.

+1

Tenga en cuenta que esta herramienta solo muestra la memoria estática. El uso de la memoria en tiempo de ejecución será mayor. Cuánto más grande depende del programa y su uso de la pila y el montón. –

+0

También puede usar "ldd" para verificar bibliotecas compartidas. Con "ldd" y "size", puedo adivinar la cantidad de ROM/RAM utilizada, incluidas las bibliotecas. – Wonil

Cuestiones relacionadas