一、引用计数(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 ~

cocos2dx 3.2 内存管理的更多相关文章

  1. Cocos2d-x 3.1 内存管理机制

    Cocos2d-x使用的内存管理方式是引用计数.引用计数是一种非常有效的机制.通过给每个对象维护一个引用计数器,记录该对象当前被引用的次数.当对象添加一次引用时,计数器加1:而对象失去一次引用时.计数 ...

  2. cocos2dx中的内存管理机制及引用计数

    1.内存管理的两大策略: 谁申请,谁释放原则(类似于,谁污染了内存,最后由谁来清理内存)--------->适用于过程性函数 引用计数原则(创建时,引用数为1,每引用一次,计数加1,调用结束时, ...

  3. 菜鸟学习Cocos2d-x 3.x——内存管理

    菜鸟学习Cocos2d-x 3.x——内存管理 2014-12-10 分类:Cocos2d-x / 游戏开发 阅读(394) 评论(6)    亘古不变的东西 到现在,内存已经非常便宜,但是也不是可以 ...

  4. cocos2dx中的内存管理方式

    转载:http://www.cocoachina.com/bbs/read.php?tid=195219 今天看了一下cocos2dx的内存管理机制,有些地方不太好理解搞了挺长的时间,现在感觉自己理解 ...

  5. cocos2d-x 3.0 内存管理机制

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  6. 【转】cocos2d-x与ios内存管理分析(在游戏中减少内存压力)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=281 注:自己以前也写过coco ...

  7. cocos2d-x与ios内存管理分析(在游戏中减少内存压力)

    转自:http://www.cocos2dev.com/?p=281 注:自己以前也写过cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏.今天在微博中看到有朋友介绍了下内存,挺详 ...

  8. cocos2d-x与ISO内存管理(转)

    一,IOS与图片内存 在IOS上,图片会被自动缩放到2的N次方大小.比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的.图片占用内存大小的计算的公式是:长*宽*4.这样 ...

  9. cocos2d-x之初试内存管理机制

    bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...

随机推荐

  1. 使用php安装pcntl模块

    想添加个php多进程任务,突然发现服务器上php不支持pcntl扩展,再看了下也没有phpize这个模块 首先看下当前php版本 [root@htest ~]# php -v PHP 5.3.3 (c ...

  2. 搭建自己的技术博客系列(五)hexo博客接入busuanzi插件,展示访问量和网站运行时间

    busuanzi计数脚本 busuanzi官方指引 一.安装脚本(必选) 要使用不蒜子必须在页面中引入busuanzi.js,目前最新版如下. 不蒜子可以给任何类型的个人站点使用,如果你是用的hexo ...

  3. java反射原理,应用

    java类的加载过程 调用java命令运行程序时,该命令会启动一条java虚拟机进程,该程序的所有线程都会运行在这个虚拟机进程里面.程序运行产生的线程.变量都处于这个进程,共同使用该JVM进程的内存区 ...

  4. FreeSql (三十一)分区分表

    分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中.把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,数据库不同实现方式有所不同. 与分表不同,一张大表进行 ...

  5. 【干货推荐】Android开发该学习哪些东西?

    开篇: 本人也是众多Android开发道路上行走的一员,听了不少大神的知乎live,自己也看了不少书,也和不少前辈交流过,所以在这里分享一下Android开发应该学习的书籍以及知识,当然,也包括一些方 ...

  6. DevExpress的TextEdit、RadioGroup、ColorPickEdit设置默认值

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  7. 加入百度地图遇到 framework not found BaiduMapAPI***

    新建一个文件夹,把需要的静态库和.h文件放到文件夹里面.就解决啦.虽然不知道为什么这样可以,但是可以使用啦~~~

  8. [大数据学习研究] 4. Zookeeper-分布式服务的协同管理神器

    本来这一节想写Hadoop的分布式高可用环境的搭建,写到一半,发现还是有必要先介绍一下ZooKeeper这个东西. ZooKeeper理念介绍 ZooKeeper是为分布式应用来提供协同服务的,而且Z ...

  9. windows下docker与.net core 的简单示例

    一 windows 下安装docker 二 .net core 项目 新建一个空的ASP.NET Core Web 应用程序 在该项目的目录下执行dotnet publish,可以看到在bin\Deb ...

  10. sql字段为逗号分开的字符串值的关联查询

    1.TREE表: [strID] [int] IDENTITY(1,1) NOT NULL,[strName] [nvarchar](50) NOT NULL, 2.SubInfo CREATE TA ...