2011-09-26 43 views
2

我想确保我正确读取分配插件。我正在测试接收内存警告的iPad应用程序1,2 & 3. 我想从我的应用程序中知道当前用完的内存,我认为它应该是“实时字节”列?这标志着All Allations到2.42 MB,我认为它的偏低。检查iOS应用程序在仪器中使用的内存

其他栏报告什么? #Transitory,总字节数? 此外,如果我的应用程序只使用3 MB的内存,如果我得到内存级别3警告而不释放,它可以被杀死?

谢谢。

enter image description here

+0

听起来不错,但你不应该得到记忆警告。发布分配跟踪的屏幕截图。 – zaph

+0

谢谢,我添加了分配跟踪屏幕截图。 –

+0

@theReverend当您将鼠标悬停在其标题上时,其他列有简要说明。 –

回答

9

不要使用对象分配仪器看着你的总内存使用情况。它不会显示应用程序的真实内存总容量,原因是我在我的回答here中进行了推测。

相反,与内存监控仪器对对象分配,其中后者将显示您的应用程序的实际总规模。我敢打赌,它比在Object Allocations中看到的2.42 MB大得多(例如,根据ObjectAlloc,我的应用程序有700k的内存使用量,但实际大小在内存中大约为25 MB)。如果您在iPad上收到内存警告,您的应用程序可能会咀嚼相当多的内存。

对象分配是非常方便的告诉你,你有什么驻留在内存中,但它不是这些项目的大小的准确的指标。它也是一个很好的工具,可以让你通过使用堆积镜头功能(仪器左侧的“Mark Heap”按钮)稳定增加分配的对象。

+0

是的,一定要使用这两种工具。 – zaph

+0

即使使用内存监视器,似乎仍然存在“蠕变”。它是真的还是只是内存显示器? HTTP://计算器。问题/ 7895642/memory-creeps-up-but-theres-no-leak-memory-monitor-on-ios –

+0

Memory Monitor是否适用于iOS应用程序?对我来说似乎不是这样。 – hlfcoding

0

你的内存使用情况看起来不错。检查哪些应用程序正在发送内存警告,可能不是您的应用程序假设您的应用程序不在后台。你应该得到内存警告的唯一方法是如果应用程序在后台,另一个应用程序需要更多的内存。

当我在看日志我注意到其他应用程序都拿到他们,而我的应用程序正在运行,其他应用程序,如邮件或导航应用程序(Navigon的)并在后台运行,并会造成内存的压力。您可能会收到内存警告,但不应被终止。

对于存储器列的描述见Explanation of Live Bytes & Overall Bytes

由于@Brad指出使用内存监视工具。

+0

如何检查其他应用程序是否收到警告?目前Iam在我的视图控制器上检查didReceiveMemoryWarning。谢谢 –

+1

正如我在回答中指出的那样,不应该使用Object Allocations来确定应用程序的绝对内存大小。它隐藏了大量的内存消耗,所以我们无法从上面提供的信息中知道他的应用程序的真实大小。我已经在Allocations中申请了700k的内存使用量,当时它确实使用了超过25 MB的内存。 –

相关问题