zoukankan      html  css  js  c++  java
  • cocos2dx 3.2 内存管理

    一、引用计数(cocos2d-x3.2的Node类中用到)

    概念:记录当前对象被引用的次数。当次数为0时释放。

    1 . retain  与 release 

    每调用一次retain()使计数+1

    调用一次release()使计数-1

    addchild 引用一次使计数+1


    另:通常在C++中,有

    1) 堆:通过new  和delete创建和释放 

    2) 栈:自动释放

    3)全局变量:程序运行时一直存在,直到程序结束

    二、静态构造函数create

    用如下方法创建场景:

    class LoadingLayer : public Layer
    {
    public:
    static Scene* createScene();
    LoadingLayer();
    ~LoadingLayer();
    CREATE_FUNC(LoadingLayer);
    private:
    MenuItemSprite* m_controlItem;
    };

    auto scene = LoadingLayer::createScene();//创建这个场景、

    三、垃圾回收机制(部分来自http://www.cnblogs.com/tangyikejun/p/4361638.html)

    Ref类: 进行引用计数、提供加入自动释放池的接口。

    AutoreleasePool 类: 管理一个 vector 数组来存放加入自动释放池的对象。提供对释放池的清空操作。

    PoolManager 类: 管理一个 vector 数组来存放自动释放池。默认情况下引擎只创建一个自动释放池,因此这个类是提供给开发者使用的,例如出于性能考虑添 加自己的自动释放池。

    另外,在每一帧结束后,会调用clear()函数对PoolManager 类里的那个vector遍历释放。

    先粗略的记到这里,以后更详细的参考http://www.cnblogs.com/tangyikejun/p/4361638.html

    四、Thanks ~

  • 相关阅读:
    mysql初识(五) 统计与计算与时间
    mysql初识(四)添加/修改字段信息
    mysql初识(二) 基础的查询语句
    mysql初识(三)修改表结构
    mysql初识(一)基础属性篇
    在Ubuntu上安装Docker Engine
    使用PowerDesigner对NAME和COMMENT互相转换
    mysql 5.1.34
    debian7下安装eclipse
    让 Visio 2003/2007 同时开多个独立窗口
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/9381038.html
Copyright © 2011-2022 走看看