cocos2dx 内存学习一

cocos2dx 内存学习一,第1张

概述<span style="font-size:18px;">自动释放池:</span> <span style="font-size:18px;">///\cocos2d-x-3.0alpha0\cocos2dx\cocoa//如果你希望使用自动释放池,那么你就可以参考他了#ifndef __AUTORELEASEPOOL_H__#define __AUTORELEASEPOOL_H__
<span >自动释放池:</span>
<span >///\cocos2d-x-3.0Alpha0\cocos2dx\cocoa//如果你希望使用自动释放池,那么你就可以参考他了#ifndef __autoRELEASEPOol_H__#define __autoRELEASEPOol_H__#include "CCObject.h"#include "CCArray.h"NS_CC_BEGIN/** * @addtogroup base_nodes * @{ */class CC_DLL autoreleasePool : public Object{    /**     * 对象池,管理在 array 里面的底层对象     *     * 虽然一旦对象被添加,对象池 Array 都保留该对象,适当的调用 Object::release() 可以确保,对象池里面的引用计数不受影响     * 如果 object 在对象池 array 里,不恰当的 object 释放,可以破坏对象池 array 里正常的 Object::release() 事件     */    Array   *_managedobjectArray;public:    /**     * @Js NA     * @lua NA     */    autoreleasePool();    /**     * @Js NA     * @lua NA     */    ~autoreleasePool();    /**     * Add 将给定的对象添加到 pool 里面.     *     * 相同的对象多次添加到相同的对象 pool ,当 对象 pool 被破坏后,每次加入 object 时,object's 都会调用 Object::release()方法     *     * @param object    添加到对象 pool 里面的对象.     * @Js NA     * @lua NA     */    voID addobject(Object *object);    /**     *把给定的对象从对象 pool 里面移除     *     * @param object    即将从对象 pool 里面移除的对象.     * @Js NA     * @lua NA     */    voID removeObject(Object *object);    /**     * 清除 autorelease pool.     *     *每次对象被添加到对象 pool 里时都会调用 Object::release()      * @Js NA     * @lua NA     */    voID clear();};class CC_DLL PoolManager{    Array           *_releasePoolStack;    autoreleasePool *_curReleasePool;    autoreleasePool *getCurReleasePool();public:    /**     * @Js NA     * @lua NA     */    static PoolManager* sharedPoolManager();    /**     * @Js NA     * @lua NA     */    static voID purgePoolManager();    /**     * @Js NA     * @lua NA     */    PoolManager();    /**     * @Js NA     * @lua NA     */    ~PoolManager();    /**     * 清除堆栈里面的所有 autoreleasePool     * @Js NA     * @lua NA     */    voID finalize();    /**     * Push 一个新的 autoreleasePool 到 pool stack.     * @Js NA     * @lua NA     */    voID push();    /**     * 从 pool stack d出一个 autoreleasePool.     *     * 这个方法确保至少有一个 autoreleasePool 在 stack 上     *     * stack 被破坏时 autoreleasePool 会d出     * @Js NA     * @lua NA     */    voID pop();    /**     * *从当前的 autorelease 池移除一个给定的对象。     *     * @param object    要删除的对象。     *     * @see autoreleasePool::removeObject     * @Js NA     * @lua NA     */    voID removeObject(Object *object);    /**     * 把一个给定的对象添加到当前autorelease池。     *     * @param object   要添加的对象。     *     * @see autoreleasePool::addobject     * @Js NA     * @lua NA     */    voID addobject(Object *object);    /**     * @Js NA     * @lua NA     */    frIEnd class autoreleasePool;};// end of base_nodes group/// @}NS_CC_END#endif //__autoRELEASEPOol_H__</span>
总结

以上是内存溢出为你收集整理的cocos2dx 内存学习一全部内容,希望文章能够帮你解决cocos2dx 内存学习一所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存