非作者原著 来自摘抄
参考文献
以自动释放池块降低内存峰值
内存峰值
是指应用程序在某个限定时段内的最大内存用量新增的自动释放池块可以减少这个峰值
for (int i = 0; i < 100000; i++) {
[self doSomethingWithInt:i];
}
随着循环次数的增加 临时对象的数量也会飙升 而只有在整个for循环结束后 这些临时对象才会得到释放
NSArray *databaseRecords=;
NSMutableArray *people = [NSMutableArray new];
for (NSDictionary *record in databaseRecords) {
@autoreleasepool {
EOCPerson *person = [[EOCPerson alloc] initWithRecord:record];
[people addObject:person];
}
}
每次循环结束 我们都会将临时对象放在这个池里面 而不是线程的主池里面