zoukankan      html  css  js  c++  java
  • iphone 开发内存管理 心得

    1,iphone,ipad 中尽量不用自动释放池。

    2,假如使用了自动释放池,就得小心:在每一个事件周期(event cycle)的开始,系统会自动创建一个自动释放池;在每一个事件周期的结尾,系统会自动销毁这个自动释放池。一般情况下,你可以理解为:当你的代码在持续运行时,自动释放池是不会被销毁的,这段时间内你也可以安全地使用自动释放的对象;当你的代码运行告一段落,开始等待用户输入(或者其它事件)时,自动释放池就会被释放掉,池中的对象都会收到一个release消息,有的可能会因此被销毁。新创建的自动释放池位于栈顶,响应autorelease 消息的 对象 跟随栈顶 的自动释放池一起销毁(最新创建的那个)。

    3,自动释放而非直接释放,可以帮助你节省一些代码量,提高开发速度。但是它有一个直接的缺点:它延缓了对象的释放,在有大量自动释放的对象时,会占用大量内存资源。因此,你需要避免将大量对象自动释放。并且,在以下两种情况下,你需要手动建立并手动销毁掉自动释放池:

    3.1.当你在主线程外开启其它线程时:系统只会在主线程中自动生成并销毁掉自动释放池。

    3.2.当你在短时间内制造了大量自动释放对象时:及时地销毁有助于有效利用iPad上有限地内存资源。

  • 相关阅读:
    js学习笔记
    在 Windows 下远程桌面连接 Linux XManager 篇
    使用多种反病毒引擎扫描文件
    光纤接口小知识
    在 Windows 下远程桌面连接 Linux VNC 篇
    基于 RHEL 的 CentOS 5.5 发布
    安装Windows 7的XP模式的步骤
    跨平台加密版 SQLite 3 wxSQLite3
    Free 的迷思
    使用 iptables 限制黑客猜密码
  • 原文地址:https://www.cnblogs.com/linyawen/p/2518291.html
Copyright © 2011-2022 走看看