iOS: Object-C 自动内存管理,活用@autoreleasepool
2013-12-18 16:07
561 查看
我们可以把需要及时释放的资源放在@autoreleasepool{}块中使用,从而达到及时释放临时内存的目的。
在Object-C中,为了内存管理的需要使用了@autoreleasepool,如果不注意使用,会造成临时内存分配不释放。
一个极端的例子
改进后的例子
在Object-C中,为了内存管理的需要使用了@autoreleasepool,如果不注意使用,会造成临时内存分配不释放。
一个极端的例子
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *s; for (int i=0; i<3000000; i++) { s = [NSString stringWithFormat:@"s%d", i]; } } return 0; }这个例子中,在循环时,内存占用超过了100M
改进后的例子
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *s; for (int i=0; i<3000000; i++) { @autoreleasepool{ s = [NSString stringWithFormat:@"s%d", i]; } } } return 0; }改进后的程序,在循环时,及时释放了临时内存,占用内存不到600K。
相关文章推荐
- iOS基本内存管理:autorelease和autoreleasepool
- IOS基本内存管理:autorelease和autorelease pool
- iOS 非ARC基本内存管理系列 4-autorelease方法和@autoreleasepool
- iOS基本内存管理:autorelease和autoreleasepool
- iOS-@autoreleasepool-内存的分配与释放
- ISO基本内存管理:autorelease与autoreleasepool
- OC基础-内存管理(三)AutoreleasePool
- ios自动释放池相关,autoreleasepool;
- Autoreleasepool自动释放池与内存相关
- Cocos2d-x 3.x:如何进行合理的内存分配(使用AutoreleasePool 来合理的管理内存)
- iOS - 自动释放池与@autoreleasepool
- ios笔记--@property写法和autorelease pool自动释放池笔记
- ios自动释放池(autoreleasepool)
- Object-C内存管理---资源自动释放池(The Autorelease Pool)
- iOS---Object-C之内存管理机制
- Objective-C的自动释放池(autoreleasepool)、静态方法快速创建对象
- iOS内存管理之注册到autoreleasePool的方法
- iOS 学习@autoreleasepool{}
- iOS tabbarviewcontroller 快速点击subviewcontroller崩溃(anonymous namespace)::AutoreleasePoolPage::pop(void
- iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool