cocos内存管理

Posted 精诚所至 金石为开

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos内存管理相关的知识,希望对你有一定的参考价值。

几个关键方法:

AutoreleasePool类中的clear方法,在每一帧的最后,会将_managedObjectArray中的autorelease对象移除,同时对每个对象执行一边release方法。

Ref类的release方法中,对引用计数减1,如果引用计数等于0,则释放这个对象。

AutoreleasePool其实只保留一帧内创建的Autorelease对象,如果在这一帧内,该对象的引用计数没有增加,也就是说没有附加到父节点上,没有对其执行retain,引用计数没有加1,仍是创建时候的1的话,那么这个对象在一帧结束时,调用release,就会释放掉。

如果这个对象在clear之前,附加到了父节点上,那么它就不会释放掉,但是会从池中移除。等到它从父节点remove的时候,会执行release,从而达到释放内存的目的。

 

以上是关于cocos内存管理的主要内容,如果未能解决你的问题,请参考以下文章

cocos内存管理

关于Cocos的内存管理机制引发一些异常的解决方案

cocos2dx[3.2](24)——内存管理机制

记录关于cocos2dx内存管理机制可能崩溃的一个坑

浅谈自己对cocos2dx的内存管理的理解

NSMutableArray 上的内存管理