iPhone应用程序可以使用多少内存?

时间:2010-02-19 21:32:01

标签: iphone objective-c cocoa-touch

任何人都可以将我链接到描述iPhone应用程序内存分配的页面。

我听说你只能使用大约20兆的沙箱,具体取决于手机的状态,但我找不到相应的来源。

4 个答案:

答案 0 :(得分:12)

这取决于您使用的设备。我发现使用iPhone 3G,当你的应用程序使用的总内存超过10-14MB时,它很容易崩溃。当它达到20MB时,肯定会崩溃。

据我所知,Apple并没有给出你可以使用的内存的任何硬数据。它总是在变化,所以很难确定。他们建议您依靠内存警告并适当地响应它们。

iPhone 3GS的应用程序可用内存量更高(我听说它大约是4倍)。虽然iPhone 3GS只有iPhone 3G的两倍内存,但操作系统占用了大量内存。应用程序无法运行。这就是3GS允许应用程序使用更多内存的原因。

此外,操作系统已经在使用大量内存。一个例子是safari保持很多标签打开。这就是为什么许多游戏建议你重启设备,如果它崩溃很多。

编程时,请注意内存增加(由于未正确释放对象)和峰值内存。这个问题更多的是关于真实世界的测试(尽可能多的设备)和良好的编程实践。

这是一篇准备更多关于如何处理内存问题的文章:

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/

答案 1 :(得分:1)

此工具可查找任何iOS设备的最大内存容量。它还可以找到您收到低内存警告的内存级别。

这是链接:https://github.com/Split82/iOSMemoryBudgetTest

答案 2 :(得分:0)

取决于当前的设备状态。一些原生的iPhone应用程序可以在后台运行并浪费设备资源(邮件,Safari,短信,电话...)所以,很难说你将获得多少内存......理想情况下,你的应用程序应该保持在10-12Mb的限制内成功克服任何记忆问题。

答案 3 :(得分:0)

我相信它是

  • 内存警告20MB
  • 应用程序“崩溃”为30MB

我很确定我在The iPhone Developer's Cookbook: Building Applications with the iPhone SDK by Erica Sadun(神奇的书,顺便说一句)中看到了这一点。

另外:Duplicate -> Maximum runtime memory available in iPhone and iPod?