七十三、基础框架(三十一)内存管理-自动释放池
来源:互联网 发布:淘宝市场行情教学视频 编辑:程序博客网 时间:2024/05/30 04:12
在以前的博文中 我们 关注过 内存管理的话题。现在 你 应该理解 什么时候 腾空 物件所占用的内存空间,而 什么时候 不腾空 物件所占用的内存空间。虽然 以前博文当中的例子 都非常 小,但是 我们 还是 强调了 注意内存管理的重要性,这样 才能养成 良好的编程习惯 并且 开发出 无泄漏的应用程序。
根据 你所开发的程序类型,理智地使用内存 十分 关键。如果 你编写的程序 属于 互动图形应用程序,那么 这种程序 在执行的过程当中 会生成 大量的物件,于是 你 必须小心 你的程序 在执行的过程中 不会 持续 消耗 内存资源。在这种情况之下 你的责任 就是 用 聪明的办法 管理 你的资源 并且 在不用的时候 将 这些资源 清理出去。这个意思 就是 在程序执行的过程中 清理 内存 而不是 等到 程序中止的时候。
接下来 我们 要更加仔细地 了解 基础框架的内存分配策略。这 涉及到 对自动释放池的深入讨论 和 持续保留物件的思想。同时 你 还会了解到 一个物件的引用计数 。最后 我们 还要了解 一种叫垃圾收集的机制。这种机制 可以减轻 你保留物件、清理物件的负担。但是 你 也会看到 垃圾收集机制 并不适用于 iphone应用程序,于是 你 还是必须理解 内存管理的技巧。
通过以前博文中的程序 你 对 自动释放池 也或多或少地 熟悉了。当你 用 基础框架 编程的时候,你 必须建立 自动释放池 来使用 基础框架提供的物件。系统 在自动释放池当中 对 你的物件 保持跟踪 以便 随后 进行清理。我们 在程序中 可以这样 建立 自动释放池:
自动释放池 建立好过后,基础框架 会自动 将 某些数组物件、字符串物件、辞典物件 和 其他物件 添加 到这个池子里。当你 不再使用 这个池子时,你 可以对 这个池子 采取 drain这项措施:
之所以自动释放池 叫做 自动释放池 是因为 自动释放池 被清理的时候 被标记为自动释放并且添加到自动释放池中的物件 也会被清理掉。实际上 在一个程序当中 你 可以建立 多个自动释放池,并且 你 还可以 在自动释放池当中 再建立 一个自动释放池。
如果 你的程序 生成 大量的临时物件,你 也许 就需要 在程序当中 创建 多个自动释放池。下面的代码片段 就示范了 在for()循环当中 如何建立 自动释放池 并用以清理 临时物件:
我们 需要注意 自动释放池 不会 从实际意义上 包含 物件本身,而 只是 将 需要清理的物件 记录下来而已。
我们 可以对 物件 采取 autorelease这项措施 将 其 添加 到当前的自动释放池当中:
在一项措施的具体内容当中,我们 将 某些物件 标记为 自动释放时,autorelease这项措施 就非常 有用。
- 七十三、基础框架(三十一)内存管理-自动释放池
- 七十七、基础框架(三十五)内存管理-一个关于自动释放池的示例
- IOS内存管理,ARC,MRC,自动释放池(基础)
- OC手动内存管理-使用自动释放池
- 6、内存管理(自动释放池)-OC
- @autoreleasepool 创建自动释放连接池(内存管理)
- 内存管理之自动释放池
- MRC内存管理2自动释放池
- oc内存管理 ---自动释放池
- OC-028.ARC自动内存管理的自动释放池
- 第六讲:Obj-C 内存管理4 - 自动释放池
- autorelease pool的内存管理之-自动释放池
- 内存管理中自动释放池与ARC的区别
- IOS内存管理--自动释放池的实现原理
- OC内存管理之—自动释放池
- OC-027.手动内存管理中的自动释放池@autorelease
- Objective-C内存管理第五弹:自动释放池
- object-c 内存管理(二) 自动释放池
- 七十一、基础框架(二十九)文件操作-文件操作柄,NSFileHandle这类物件
- Visual.Assist.X.V10.7.1918的Crack破解补丁. 更好的支持VC2012,修正少量Bug. 2012.10.26(Release)
- 七十二、基础框架(三十)文件操作-文件操作柄,NSFileHandle这类物件2
- 浅谈c,c++输入输出
- mutable说明符
- 七十三、基础框架(三十一)内存管理-自动释放池
- 先写个进度 Symbian webkit编译结果
- 一切看淡,心就不累了-伤感QQ日志
- 2013年的IT外包将何去何从
- 在VC下手工为对话框添加自定义消息
- 七十四、基础框架(三十二)内存管理-引用计数
- c++中的全局变量
- 持续集成环境搭建(hudson+ant+JUNIT+EMMA)<1>
- 七十五、基础框架(三十三)内存管理-引用计数 与 字符串物件