Cocos2D-x内存管理的原则

Cocos2D-x内存管理的原则,第1张

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存