cocos2d-x 延续了cocos2d 和OC的引用计数的内存管理机制!

下面我们来看看CCDriectro类 CCPoolManager::sharedPoolManager()->push();
基础:我们要先熟悉  release  释放该内存!
 
    CCPoint *temp = new CCPoint(controlPoint.x, controlPoint.y);

m_pControlPoints->addObject(temp);

temp->release();

autorelease 是标记自动释放对象!下面会讲到自动内存释放 是怎么操作的

CCString* pRet = new CCString(str);

pRet->autorelease();

return pRet;

CCPoolManager::sharedPoolManager()->pop();  看看这两个方法!就相当于OC的内存释放池! 在CCDriectro中 每次去渲染的时候!都会去查看内存释放池的是否有内存计数为0的对象!如果有的话!就会去清理掉!释放内存!

其实我们在游戏开发中 注意一些内存的管理,对游戏有很大的帮助!一点一点积攒起来!就会对游戏内存吃紧的问题!有本质的解决!

1,如场景切换  在内存吃紧的情况下 我们可以选择 先清理一下缓存!

// 清空缓存 CCDirector::sharedDirector()->purgeCachedData();

2,场景切换也有注意的地方!场景切换 有压入式加入!替换式加入!

这里说一下压入场景(pushScene)和弹出场景(popScene)。它们都可以用来显示场景 和保留当前场景并显示新场景 ;不同的是它们不把旧场景从内存中释放掉,这样可以提高加 载速度,这时需要注意,如果内存不足以支撑的话,建议采用 replaceScene函数。

以上过程分为以下三步:

1)调用 CCDirector::sharedDirector()->purgeCachedData() 清空缓存。
2)新建场景。
3)调用 CCDirector::sharedDirector()->replaceScene(this) 替换新场景。Cocos2D-x 提供了场景间切换的特效,下一节将会介绍这些内容。

cocos2d-x内存管理(见解)的更多相关文章

  1. cocos2d内存管理

    设想如下场景, 这是一个典型的内存合理分配的场景: 在一帧内, 有若干个函数, 每个函数都会创建一系列的精灵, 每个精灵都不同, 都会占用一定的内存, 精灵的总数可能会有1000个, 而一个函数只会创 ...

  2. 【Cocos2d-x 3.x】内存管理机制与源码分析

    侯捷先生说过这么一句话 :  源码之前,了无秘密. 要了解Cocos2d-x的内存管理机制,就得阅读源码. 接触Cocos2d-x时, Cocos2d-x的最新版本已经到了3.2的时代,在学习Coco ...

  3. glibc下的内存管理

    在解码过程中我们也遇到了类似的问题,第一次解码的音频比较大60s,耗了3G的内存,reset之后内存并没有退还给操作系统,第二次即使解一个10s的音频 几周前我曾提到,我被项目组分配去做了一些探究li ...

  4. Cocos2d-x内存管理研究<二>

    http://hi.baidu.com/tzkt623/item/46a26805adf7e938a3332a04   上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...

  5. iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)

    手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...

  6. cocos2dx内存管理的一些看法

    今年年初进入一家游戏公司,正式开始游戏引擎的学习,之前的ios学习,对现在的游戏引擎学习还是有很大的帮助的,虽然使用c++,但却能时刻感受到ios框架对于cocos2dx的巨大影响. 由于之前一直使用 ...

  7. 如何优化cocos2d/x内存使用和程序大小的程序

    从最初的:http://www.himigame.com/iphone-cocos2d/1043.html 译者: 在我完毕第一个游戏项目的时候.我深切地意识到"使用cocos2d来制作游戏 ...

  8. Cocos2D-X2.2.3学习笔记3(内存管理)

    本章节介绍例如以下: 1.C/C++内存管理机制 2.引用计数机制 3.自己主动释放机制 1.C/C++内存管理机制 相信仅仅要懂oop的都知道NEW这个keyword吧,这个通俗点说事实上就是创建对 ...

  9. cocos2dx内存管理

    cocos2dx基于引用计数管理内存,所有继承自CCObject的对象都将获得引用计数的能力,可通过调用retain成员函数用于引用计数值,调用release减少引用计数值,当计数值减为0时销毁对象. ...

随机推荐

  1. SQL 命令

    登录系统: mysql -u user_name -p 查看当前用户列表:select user; 查看数据库列表: show databases 进入某数据库: use db_name; 查看某数据 ...

  2. 数据结构作业——order(二叉树遍历)

    order Description 给出一棵二叉树的中序遍历和每个节点的父节点,求这棵二叉树的先序和后 序遍历. Input 输入第一行为一个正整数 n 表示二叉树的节点数目, 节点编号从 1 到 n ...

  3. Java反射API使用实例

    /**     * 访问Class对应的类所包含的注释:getAnnotation();getDelaredAnnotation();     * 访问Class对应的类所包含的内部类:getDecl ...

  4. UVA11181Probability|Given(条件概率)

    题目链接 紫书P327 题意:有n个人准备去超市逛,其中第i个人买东西的概率是 Pi .逛完以后你得知有 r 个人买了东西.根据这一信息,计算每个人实际买东西的概率.输入 n ( 1 <= n ...

  5. SOCKADDR_IN

    在windows/linux下有下面结构: sockaddr结构 struct sockaddr { unsigned short sa_family;/*addressfamily,AF_xxx*/ ...

  6. CentOS只允许部分IP登陆ssh |ssh 允许指定IP

    在/etc/hosts.allow输入   (其中192.168.10.88是你要允许登陆ssh的ip,或者是一个网段192.168.10.0/24)   sshd:192.168.10.88:all ...

  7. css 父层 透明 子层不透明Alpha

    html代码 <div class="user2-register-bg"> <div class="user2-register-con"& ...

  8. ecshop 版权问题 Powered by ECShop

    将下代码 <div style="width:0px;height: 0px;overflow:hidden;">{foreach from=$lang.p_y ite ...

  9. 使用docker exec 就可以进入container,例如:docker exec -it <container_id> /bin/bash

    使用docker exec 就可以进入container,例如:docker exec -it <container_id> /bin/bash

  10. 关于MarshalByRefObject的解释

    http://www.cnblogs.com/webfpc/archive/2010/03/10/1667101.html 首先了解一下不同应用程序域中的对象的通信方式有两种: 一种是跨应用程序域边界 ...