SpringBoard内存分配(iPhone/iPad)

SpringBoard内存分配(iPhone/iPad),iphone,memory,ipad,Iphone,Memory,Ipad,我有一个正在开发的应用程序,它对图像和OpenGL纹理使用大量内存 我注意到,在某些设备上,SpringBoard(管理iPhone和iPad主屏幕的应用程序)偶尔会占用过多的内存,有时是正常情况下的两倍 当这种情况发生时,它会将我的应用程序发送到内存警告,甚至崩溃。我的图片会尽快发布,但我相信由于数量太大,它还不够好,仍然会导致崩溃 我在苹果的文档中找不到关于SpringBoard的内容,但这让我很生气 你有什么想法或建议来找出是什么原因导致SpringBoard如此具有攻击性吗?在这种情况下

我有一个正在开发的应用程序,它对图像和OpenGL纹理使用大量内存

我注意到,在某些设备上,SpringBoard(管理iPhone和iPad主屏幕的应用程序)偶尔会占用过多的内存,有时是正常情况下的两倍

当这种情况发生时,它会将我的应用程序发送到内存警告,甚至崩溃。我的图片会尽快发布,但我相信由于数量太大,它还不够好,仍然会导致崩溃

我在苹果的文档中找不到关于SpringBoard的内容,但这让我很生气


你有什么想法或建议来找出是什么原因导致SpringBoard如此具有攻击性吗?

在这种情况下,你的应用程序不应该崩溃——当操作系统告诉它退出时,它应该自动关闭。苹果不会对Springboard做太多的记录,因为他们不能告诉你太多会影响你作为一名程序员的工作,这可以归结为“使用尽可能少的内存;不要泄漏内存;在被告知退出时尽快退出”


简言之,如果你花更多的时间担心Springboard的行为,而不是修复应用程序中的崩溃,你就没有明智地利用时间。

答案是,尽管MKAnnotationViews被自动删除,但却集中在Springboard的内存中,而不是我自己的应用程序,并没有很清楚地表现在乐器上


对于苹果来说,这是一件相当具有欺骗性的事情,特别是它们允许你自动释放并且从不使用对象,但它实际上永远不会被释放。。。因此,从技术上讲,它在仪器和静态分析中不是一个漏洞,但仍然很容易导致与内存相关的崩溃。

我不否认这一点,但我想知道的是,我的应用程序是否可以采取任何行动,导致SpringBoard分配额外内存。在我的应用程序运行时,我可以在仪器上运行显示器,观看SpringBoard分配高达10MB的内存;即使我们现在知道为什么会发生这种情况,在不同版本之间也可能会发生变化。所以,再一次,你找错地方了。如果你花太多时间担心Springboard(这是你无法控制的)之类的事情,你就没有时间去做你可以控制的事情(比如修复为什么你的应用程序在设备内存不足的情况下会崩溃)。你花了3个小时来检测。如果您不重用MKAnnotationViews,它就会泄漏到SpringBoard中。对苹果来说,这太可怕了。它们不是自动发布的,只是集中在Springboard内存中。我每天都在WebKit中发现一个新的漏洞——漏洞常常会导致我的应用程序崩溃,无法在漏洞之外复制。不过,我的应用程序得到了批准。我希望下一个版本的Xcode和SDK能够解决其中的一些bug和这些bug工具。