Mac OS X:Was ist der beste Weg, um die Code- und statische Datengröße eines Programms abzuschätzen?
Frage
Ich möchte eine Schätzung darüber erhalten, wie viel Code und statische Daten von meinem C++-Programm verwendet werden.
Gibt es eine Möglichkeit, dies herauszufinden, indem man sich die ausführbaren Dateien oder Objektdateien ansieht?Oder vielleicht etwas, was ich zur Laufzeit tun kann?
Hilft otool?
Lösung
- „size“ ist das traditionelle Tool und funktioniert auf allen Unix-Varianten.
- „otool“ hat eine etwas feinere Kornkontrolle und bietet viele Optionen.
.
$ size python
__TEXT __DATA __OBJC others dec hex
860160 159744 0 2453504 3473408 350000
Andere Tipps
Ich denke, otool kann helfen.Konkret sollte „otool -s {segment} {section}“ die Details ausdrucken.Ich bin mir nicht sicher, ob Sie Informationen zu __DATA oder __TEXT erhalten können, ohne einen Abschnitt anzugeben.Möglicherweise werden diese Größen im Mach-Header angegeben:„otool -h“?
otool -s __DATA __data MyApp.bundle/Contents/MacOS/MyApp
otool -s __TEXT __text MyApp.bundle/Contents/MacOS/MyApp
Wie auch immer, Apple dokumentiert hier, was pro Segment in jeden Abschnitt kopiert wird: Dokumentation zum Mach-O-Format von Apple