如果我在main函数的第一行代码上放置一个断点,我会在活动监视器中看到17MB的内存用于我的应用程序。你知道为什么没有任何东西加载的内存使用率如此之高? (也许操作系统正在加载很多东西,但不是我)
此内存使用情况与app可执行文件的大小几乎相同。可执行文件是否在启动时完全加载? 如何减少初始内存大小?
答案 0 :(得分:5)
不要查看活动监视器,使用仪器(配置文件,分配)。
答案 1 :(得分:2)
我认为它与你的应用程序包大小相同的事实可能只是一个巧合,因为整个软件包在启动时没有加载到内存中。
正如CocoaFu所说,使用分配工具来查看应用分配的内存量。它将比活动监视器工具小得多,因为它不包括OpenGL使用的内存(支持所有用户界面元素)。
最有可能的是,实际分配非常小(MB或更小),而其他16个左右MB是由UIKit创建的应用程序的所有界面元素(即导航控制器,各种视图控制器,按钮,随你)。请注意,在iPhone 4或iPod touch第4代上,OpenGL分配(即分配工具和活动监视工具之间的差异)将大约是之前型号的两到四倍,因为屏幕的分辨率是4倍所有UI元素都比较大。