2019-01-11

非作者原著 来自摘抄

参考文献

J_Knight_

以自动释放池块降低内存峰值

内存峰值 是指应用程序在某个限定时段内的最大内存用量
新增的自动释放池块可以减少这个峰值

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];
        }
    }

每次循环结束 我们都会将临时对象放在这个池里面 而不是线程的主池里面

猜你喜欢

转载自blog.csdn.net/weixin_34274029/article/details/87165705