最近,当我查看iPhone内存管理时,我试图比较同一对象上的便捷方法和init方法。例如,我有UIImageView的地方显示一个下载NSData的:便捷方法vs初始化方法的内存使用情况
便捷方法:
imageView.image = [UIImage imageWithData:[downloads dataAtIndex:0]];
init方法:
UIImage *aImage = [[UIImage alloc] initWithData:[downloads dataAtIndex:0]];
imageView.image = aImage;
[aImage release];
当我尝试去来回的意见,以增加内存使用率和命中“模拟内存警告”,应用程序的内存使用率从20MB到18MB,使用方便的方法,init方法立即从20MB变为13MB。
我也等待并与应用程序交互,以便在便捷方法的autorelease上发布时间。但它并没有太大下降。
除了autorelease vs版本之外,还有什么其他贡献了差异?
如果不存在自动释放池,则当您尝试创建自动释放对象fyi时,应该会将警告打印到控制台。 – 2008-11-14 13:57:59
它应该在主线程,因此它可能不相关... – leonho 2008-11-14 15:44:30