size aus den GNU Binutils zeigt, wie groß die einzelnen Sektionen einer Objektdatei oder eines Programms sind. Die klassische Ausgabe listet die Abschnitte text, data und bss sowie die Summe — damit lässt sich auf einen Blick abschätzen, wie viel Platz ein Programm im Flash belegt und wie viel RAM es zur Laufzeit braucht.
size main.elf
text data bss dec hex filename
12340 456 320 13116 333c main.elf
Formate und Radix
-A (SysV-Format) listet jede einzelne Sektion auf, -B wählt das klassische Berkeley-Format, -G das GNU-Format. Mit -d, -o und -x schaltet man zwischen dezimaler, oktaler und hexadezimaler Darstellung um, -t ergänzt eine Summenzeile über mehrere Dateien.
size -A -d main.elf
size -t *.o
Typische Fragestellungen
- Embedded: Passt der Code in den Flash?
textunddataliegen dort,bsswird zur Laufzeit im RAM angelegt. - Speicherprofil: Wächst
bssdurch große statische Puffer stärker als erwartet? - Bibliotheken vergleichen: Bibliotheks-Varianten auf Codegröße prüfen.
Während objdump und readelf das Layout im Detail zeigen, liefert size die kompakte Größenübersicht. Zusammen mit objcopy lässt sich so auch kontrollieren, was nach dem Umbau (zum Beispiel -O binary) noch übrig ist.
Verwandte Grundlagen: objcopy-Befehle, strings-Befehle, Symboltabelle.