【发布时间】:2011-09-19 17:48:27
【问题描述】:
如果我在 main 函数的第一行代码上设置断点,我会在活动监视器中看到我的应用程序有 17MB 的内存。你知道为什么在没有加载任何东西的情况下内存使用率如此之高吗? (也许操作系统正在加载很多东西,但不是我)
此内存使用量与应用程序可执行文件的大小几乎相同。启动时可执行文件是否已完全加载?
如何减少初始内存大小?
【问题讨论】:
标签: iphone ios memory-management
如果我在 main 函数的第一行代码上设置断点,我会在活动监视器中看到我的应用程序有 17MB 的内存。你知道为什么在没有加载任何东西的情况下内存使用率如此之高吗? (也许操作系统正在加载很多东西,但不是我)
此内存使用量与应用程序可执行文件的大小几乎相同。启动时可执行文件是否已完全加载?
如何减少初始内存大小?
【问题讨论】:
标签: iphone ios memory-management
不要查看活动监视器,使用 Instruments(配置文件、分配)。
【讨论】:
我认为它与您的 app bundle 大小相同的事实可能只是巧合,因为整个 bundle 在启动时并未加载到内存中。
正如 CocoaFu 所说,使用分配工具查看您的应用分配了多少内存。它将比活动监视器工具小得多,因为它不包括 OpenGL 使用的内存(它支持所有用户界面元素)。
很可能,您的实际分配非常小(1 MB 或更少),而其他 16 MB 左右是由 UIKit 创建的应用程序的所有界面元素(即您的导航控制器、各种视图控制器、按钮、任何)。请注意,在 iPhone 4 或 iPod touch 第 4 代上,OpenGL 分配(即分配工具和活动监视器工具之间的差异)将大约是早期型号的 2 到 4 倍,因为屏幕的分辨率是 4 倍,所以所有 UI 元素都更大。
【讨论】: