Mac OS X:估算程序代码和静态数据大小的最佳方法是什么?

时间:2020-03-05 18:45:17  来源:igfitidea点击:

我希望能够估算出我的C ++程序使用了多少代码和静态数据?

有没有一种方法可以通过查看可执行文件或者目标文件来找出来?也许我可以在运行时做些什么?

otool会帮忙吗?

解决方案

回答

我认为otool可以提供帮助。具体来说," otool -s {段} {节}"应打印出详细信息。我不确定是否可以在不指定节的情况下获取有关__DATA或者__TEXT的信息。也许这些大小在mach标头中报告:" otool -h"?

otool -s  __DATA __data MyApp.bundle/Contents/MacOS/MyApp
otool -s __TEXT __text MyApp.bundle/Contents/MacOS/MyApp

无论如何,Apple在这里记录了按段复制到每个节中的内容:Apple的mach-o格式文档

回答

  • "大小"是传统工具,适用于所有Unix风格。
  • " otool"具有更精细的谷物控制,并且有很多选择。

$ size python
__TEXT  __DATA  __OBJC  others  dec     hex
860160  159744  0       2453504 3473408 350000