Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2D-x内存管理的原则大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Cocos2D-x采用C++语言进行开发,C++中的对象采用new/delete机制来进行管理,即当创建一个对象的时候,调用new来申请一部分内存,当不需要这个对象的时候,直接调用delete就可以释放这部分内存。这样处理的好处是,程序可以完全掌握内存管理的方方面面;缺点是程序员有时候会忘记释放内存,就会发生内存泄露,导致不可预计的后果。


Cocos2D-x采用引用计数的方式管理内存,基本原则是当创建一个新对象的时候,内存计数计为1,每次进行retain保留操作的时候,内存计数加1,每次进行release释放操作的时候,内存计数减1。另外,对一个对象进行自动释放对象操作(autorelease)表明这个对象处于自动管理的状态,会在内存管理池CCPoolManager中添加这个对象,并且在自动释放内存池CCAutoreleasePool的堆栈中申请一块内存池放入这个对象。之后在对象不被需要用的时候,引擎会自动清楚它。引擎用单一的线程来进行场景的绘制,通过不断调用主循环这个函数,这个函数除了进行场景的绘制,也会调用CCPoolManager的pop函数对自动管理的对象进行释放操作,pop函数会对CCAutoreleasePool堆栈栈顶的内存池进行操作,将池内的对象标记为非自动管理状态,并进行一次release操作,清除引用计数为1的对象,然后取出前一个入栈的内存池,等待下一轮的释放。


——摘自《cocos2D-x权威指南》P327

大佬总结

以上是大佬教程为你收集整理的Cocos2D-x内存管理的原则全部内容,希望文章能够帮你解决Cocos2D-x内存管理的原则所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。