美文网首页
内存管理

内存管理

作者: 言己言 | 来源:发表于2021-09-18 17:26 被阅读0次

    引用计数管理内存的思考四大原则:

    • 自己生成的对象,自己持有
    • 非自己生成的对象,自己也能持有
    • 不再需要自己持有的对象及时释放
    • 无法释放非自己持有的对象(直接crash)
      注:释放非自己持有的对象crash

    alloc,new, copy,,mutableCopy这些方法开头的方法名会被默认标记为 __attribute((ns_returns_retained)),以这些方法创建的对象,编译器在会在调用方法外围要加上内存管理代码retain/release,所以其在作用域结束的时候就会释放,而不以这些关键字开头的方法,会被默认标记为__attribute((ns_returns_not_retained)),编译器会在方法内部自动加上autorelease方法,这时创建的对象就会被注册到自动释放池中,同时其释放会延迟,等到自动释放池销毁的时候才释放。

    用引用计数表(散列表)管理引用计数的好处:

    • 对象用内存块的分配无需考虑内存块头部
    • 引用计数表各记录中存有内存块地址,可以从各个记录追溯到各对象的内存块。
    • 在利用工具检测内存泄漏时,引用计数表的各记录有助于检测各对象的持有者是否存在。

    相关文章

      网友评论

          本文标题:内存管理

          本文链接:https://www.haomeiwen.com/subject/hhrygltx.html