cocos2dx内存管理机制

cocos2dx内存管理机制

1.类似于C++11的智能指针的内存管理机制

2.Cocos2dx里面几乎所有对象都继承与Ref基类,而Ref基类的主要职责就是对该对象就行引用计数 管理,在Ref基类中有一个引用计数属性,该值默认为1,该类提供了三个方法,一个是release(),引用计减一, 如果该对象的引用计数等于0,就会释放掉该对象申请的内存;第二个方法是retain(),引用计数加一;第三个方法是autorelease,将该对象放入自动释放池。在Cocos2dx里面,有一个自动释放池管理者,里面管理着所有的自动释放池,在每一帧结束的时候,自动释放池管理者会遍历所有的自动释放池,每个自动释放池会遍历里面的每个对象,执行一次release操作,然后清空自动释放池。

3.Cocos2dx里面几乎所有的对象都是通过Create方法创建的,该方法内部会调用autorelease,将该对象加入自动释放池,将内存释放交由对象池统一管理。创建出的对象在其父亲节点的addChild方法内部会调用retain方法,将该对象 引用计数加一。而其他的通过create创建的对象,没有加入自动释放池的对象,必须手动调用retain方法和release方法来进行引用计数管理,如Animate和Animation对象 一般是手动进行管理。

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务