zoukankan      html  css  js  c++  java
  • 十三:autorelease自动释放池

    autorelease 自动释放池

    autorelease是一种支持引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里面的所有对象做一次release操作

    优点:不用再关心对象释放的时间,不用再关心什么时候调用release

    原理:autorelease实际上只是把对release的调用延迟了,对于每一个autorelease,系统只是把该 Object放入了当前的autorelease pool中,当该pool被释放时,该pool中的所有Object会被调用Release。

    (1)在自动释放池中创建了对象, 一定要调用autorelease,才会将对象放入自动释放池中(也可以不在自动释放池中创建,但必须在自动释放池中调用autorelease)

    (2)一个程序中可以创建N个自动释放池, 并且自动释放池还可以嵌套

    (3)不要再自动释放池中使用比较消耗内存的对象, 占用内存比较大的对象

    (4)尽量不要再自动释放池中使用循环, 特别是循环的次数非常多, 并且还非常占用内存

    (5)千万不要写多次autorelease

    (6)一个alloc/new对应一个autorelease或者release

    存储形式: 如果存在多个自动释放池的时候, 自动释放池是以 “” 的形式存储在堆区

    栈的特点: 先进后出

  • 相关阅读:
    第09组 Alpha事后诸葛亮
    第09组 Alpha冲刺(4/4)
    第09组 Alpha冲刺(3/4)
    第09组 Alpha冲刺(2/4)
    第09组 Alpha冲刺(1/4)
    机器学习第二次作业
    机器学习第一次作业
    机器学习第一次个人作业
    第04组 Beta冲刺(4/4)
    第04组 Beta冲刺(3/4)
  • 原文地址:https://www.cnblogs.com/hissia/p/5450012.html
Copyright © 2011-2022 走看看