深入剖析AutoreleasePool

时间:2023-03-08 20:25:10

深入剖析AutoreleasePool

  Objc的AutoreleasePool是一个首尾相连的内存链接,每块大小为1页(32位机上为4kb)。

  深入剖析AutoreleasePool

  上面可以看到,parent指向父Pool,child指向子Pool,因初始化时无child Pool,所以child被置为NULL。next指向当前内存块中的最大位置,即每个块内是一个4kb的栈。

  通过以下方很容易看出AutoreleasePoolPage如果使用:

  深入剖析AutoreleasePool

  当一个AutorreleasePool被释放时,在该pool之后的pool所涵盖的对象均会被释放。

  深入剖析AutoreleasePool