1.cocos2dx内存管理和CCArray,CCMenuItem
1 C++内存管理
2 内存管理的难处
3 内存的智能管理 主要有两种实现智能管理内存的技术,一种是引用计数,一是垃圾回收。 引用计数:通过给每个对象维护一个引用计数器,记录该对象当前被引用的次数。当对象增加一次引用时,计数器加1;而对象失去一次引用时,计数器减1;当引用计数为0 时,标志着该对象的生命周期结束,自动触发对象的回收释放。引用计数解决了对象的生命周期管理问题,但堆碎片化和管理烦琐的问题仍然存在。 垃圾回收:它通过引入一种自动的内存回收器,试图将程序员从复杂的内存管理任务中完全解放出来。它会自动跟踪每一个对象的所有引用,以便找到所有正在使用的对象,然后释放其余不再需要的对象。垃垃圾回收器通常是作为一个单独的低级别的线程运行的,在不可预知的情况下对内存堆中已经死亡的或者长时间没有使用过的对象进行清除和回收。 4 cocos2dx内存管理 A 手动管理 Cocos2dx采用工厂方法创建对象,所有生成的对象均在堆上,所以Cocos2dx采用了引用计数的方法管理内存。具体实现: B 案例说明:
C retain()本质
D autorelease()本质(延迟释放内存)
5 CCArray A 类关系图
B CCArray继承自CCObject,而非CCNode,没有办法加到渲染树中去,但是参加了内存托管。所以应该手动处理。 示例:
C 例外中的例外
C CCArray的案例:
??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |