在所有仪器跟踪模板中,我喜欢使用:
EXEC_BAD_ACCESS错误.UITableView滚动.我总是听到人们说要描述我的应用程序的内存使用情况和性能.
我使用了Allocations,看到我的iPhone应用程序的总分配内存为1 MB,正常使用后增长到5 MB.iPhone上的内存使用量是多少?iPad的?苹果电脑?
从这些从乐器拍摄的屏幕中可以看出,Allocations认为我的应用程序(Ongo)仅使用7.55 MB的内存,而Memory Monitor则表示53.30.此外,自由系统内存与应用程序使用的内存量几乎没有任何关联.有谁知道为什么这两个工具之间存在如此大的分歧?另外,是否可以找到低系统内存的来源或如何防止它快速耗尽?我的应用程序似乎没有泄漏内存,但不知何故,它耗尽了系统资源.
谢谢

我有一个大的UIScrollView,我正在放置3-4个相当大(320x1500像素左右)的UIImageView图像拼贴.我将这些UIImageViews添加到我的NIB文件内的滚动视图中.我的控制器上有一个插座,那就是UIScrollView.我正在使用一个属性(非原子,保留),并将其合并.
我的问题是:当我在Memory Monitor中观察到这一点时,我可以看到,当加载了所有这些图像的视图时(正如预期的那样),所使用的内存会相当大.但是当我离开视图时,它和它的控制器都是dealloc'd,但似乎并没有放弃它们占用的内存附近的任何地方.当我将其中一个视图(我的应用程序中有几个)切割成只有1-3个320x460的图像并将其他所有内容保持相同时,它会重新捕获内存.
使用这么大的图像有什么问题吗?我在这段代码中做错了什么(粘贴在下面)?
这是viewController的一个导致问题的片段.
- (CGFloat)findHeight
{
UIImageView *imageView = nil;
NSArray *subviews = [self.scrollView subviews];
CGFloat maxYLoc = 0;
for (imageView in subviews)
{
if ([imageView isKindOfClass:[UIImageView class]])
{
CGRect frame = imageView.frame;
if ((frame.origin.y + frame.size.height) > maxYLoc) {
maxYLoc = frame.origin.y;
maxYLoc += frame.size.height;
}
}
}
return maxYLoc;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.scrollView setContentSize:CGSizeMake(320, [self findHeight])];
[self.scrollView setCanCancelContentTouches:NO];
self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
self.scrollView.clipsToBounds = YES;
self.scrollView.scrollEnabled = YES;
self.scrollView.pagingEnabled = NO;
}
- (void)dealloc …Run Code Online (Sandbox Code Playgroud) 我有一个在模拟器中运行良好的iPhone应用程序.通过摆脱一切并非绝对必要的东西,它可以很好地响应记忆警告.当我在设备上运行它时,它运行良好.但是在经过一定程度的使用后,它崩溃了,错误代码为101 - 据我所知,操作系统会因内存使用情况而将其查杀.我可以看到内存警告(我正在记录它),我的应用程序响应它,但此后不久就死了.
如果我查看仪器中的应用程序(在设备上或在SIM卡中),它没有发现任何泄漏.此外,净内存使用量在600-700k字节的范围内.从我的应用程序的不同视图转换会增加内存使用量(正如预期的那样),但是当视图和控制器被释放并释放时,内存使用量从未像现在这样低.但是,添加通常只有1000-2000字节的范围内.因此,虽然泄漏显示我没有泄漏,但我怀疑某处存在问题.我还查看了我正在分配的所有对象,所有这些对象似乎都按预期进行了回收.我看到的唯一不断增加的对象是GeneralBlock-N(其中N是一些数字)
我不应该关注仪器净使用量数字吗?尝试诊断问题的后续步骤是什么?
ADDED:我没有调用malloc()或任何会返回我负责的缓冲区的CoreFoundation库.我正在进行的唯一非Obj-C调用是将语句记录到NSLog.
iphone ×3
cocoa-touch ×2
allocation ×1
instruments ×1
ios ×1
ipad ×1
objective-c ×1
performance ×1
profiling ×1
xcode ×1