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

StackOverflow https://stackoverflow.com/questions/35491

  •  09-06-2019
  •  | 
  •  

我希望能够估计我的 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 格式文档

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top