Mac OS X:估计程序的代码和静态数据大小的最佳方法是什么?
题
我希望能够估计我的 C++ 程序使用了多少代码和静态数据?
有没有办法通过查看可执行文件或目标文件来找到这个问题?或者也许我可以在运行时做一些事情?
otool 有帮助吗?
解决方案
- “size”是传统工具,适用于所有 UNIX 风格。
- “otool”有更精细的粒度控制,并且有很多选项。
.
$ size python
__TEXT __DATA __OBJC others dec hex
860160 159744 0 2453504 3473408 350000
其他提示
我认为 otool 可以提供帮助。具体来说,“otool -s {segment} {section}”应该打印出详细信息。我不确定您是否可以在不指定部分的情况下获取有关 __DATA 或 __TEXT 的信息。也许这些大小在马赫头中报告:“otool-h”?
otool -s __DATA __data MyApp.bundle/Contents/MacOS/MyApp
otool -s __TEXT __text MyApp.bundle/Contents/MacOS/MyApp
无论如何,Apple 记录了每个段复制到每个部分的内容: Apple 的 mach-o 格式文档
不隶属于 StackOverflow