1

谁能告诉我 iphone 支持的最大应用程序大小是多少?另外支持的最大堆大小和堆栈大小是多少?应用程序很快就会“内存不足”......

4

2 回答 2

3

你可能得到的任何数字都是

  1. 可能会发生变化(即使它们现在是正确的,但在某些时候它们很可能是错误的),并且
  2. 无用。

具体来说,您对这些数字中的任何一个做了什么?跟踪您分配了多少内存?当你用完时你会做什么?iOS 会向您发送一条消息,告诉您在发生这种情况时释放一些内存;你会做什么不同的事情?

不要担心对自己施加限制。尽可能高效。

应用程序很快就会“内存不足”......

那么你的记忆力就不高了。使用 Instruments 的 ObjectAlloc 和 Leaks 工具分析您的应用程序,并找出您的低效率所在。修复它们后,您的应用程序将不再经常耗尽内存。

如果您还没有阅读内存管理编程指南,您还应该阅读。有可能你只是没有发布你需要发布的东西。如果是这种情况,您会看到Leaks 仪器有很多泄漏。

于 2010-06-28T11:53:19.890 回答
2

如果你有无限(非尾)递归,你会被放入调试器中,堆栈帧数约为 20k。我不确定这对应于多少字节,但对于任何明智的事情来说已经足够了。

除了通常的地址空间限制(可能在 3GB 左右)之外,没有设置最大值;您的应用程序被终止,因为设备的物理 RAM 已用完,并且没有更多的后台应用程序可以终止。

如果您因为内存不足而被杀死,那么您要么在做一些非常愚蠢的事情,要么存在内存泄漏。

于 2010-06-28T12:36:17.283 回答