从这些从乐器拍摄的屏幕中可以看出,Allocations认为我的应用程序(Ongo)仅使用7.55 MB的内存,而Memory Monitor则表示53.30.此外,自由系统内存与应用程序使用的内存量几乎没有任何关联.有谁知道为什么这两个工具之间存在如此大的分歧?另外,是否可以找到低系统内存的来源或如何防止它快速耗尽?我的应用程序似乎没有泄漏内存,但不知何故,它耗尽了系统资源.
谢谢

我正在开发一个iOS应用程序,它将创建许多小对象和浮动,并试图了解它消耗了多少内存使用量.
当我运行"分配"工具时,它说我有大约2MB的"实时字节",当我在应用程序中移动时,数字大致保持不变(当应用程序繁忙时,峰值达到3MB左右,但随后又下降低至2MB).
但是当我运行"Activity Monitory"乐器时,我的应用程序的"真实内存"一旦完成启动就会达到25MB,并且在我的CALayer中进行绘制时会快速增长.在不到一分钟的时间里,它超过了100MB.
为什么"Live Bytes"显示2MB,但"Real Memory"显示100MB?
我的CALayer正在绘制大量的路径,它将CPU固定为100%几秒钟才完成单个绘制操作,并且它将所有这些点从NSData对象加载到CGPoint值中,然后再次释放它们(NSData) object是被绘制点的压缩版本,存储从一个点到下一个点的增量,所以我将它保存在RAM中但不保留实际的CGPoints).
它还将绘图的结果缓存在UIImage中,并且它们保存在先进先出的数组中,该数组不会增长到超过500KB.
显然,由于内存不足问题,我的应用程序在ipod第二代崩溃了.我做的是在用户滚动时在scrollView + pageControl中的每个视图上调用图像.当内存警告到达特定点后,应用程序崩溃了.当我收到警告时,我试图释放视图,但它仍然导致崩溃.
我用谷歌搜索了ImageNamed:显然这个api调用中存在问题,但是大多数文章都说它是在最近的iOS版本中修复的.
我通过调用image imageWithContentOfFile而不是imageNamed修复了这个问题,但我想知道ImageNamed是否仍然导致内存泄漏或者在视图发布时没有释放.
ios ×4
iphone ×2
objective-c ×2
diagnostics ×1
instruments ×1
ipad ×1
ipod ×1
memory ×1
memory-leaks ×1