cocos2d-x内存管理(见解)
2013-09-03 16:42
232 查看
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 提供了
场景间切换的特效,下一节将会介绍这些内容。
下面我们来看看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内存管理(见解)
- 《Cocos2d-x 高级开发教程》读书笔记1:内存管理
- Cocos2d-x js 内存管理
- Objective-C 关于内存管理的一些见解
- Cocos2d-x内存管理支持多线程 修改autorelease
- cocos2d-x 内存管理概述
- Cocos2d-x内存管理解析
- cocos2d-x内存管理retain和release
- cocos2d中的内存管理,举例说明
- cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
- cocos2d-x与ios内存管理分析(在游戏中减少内存压力)
- Cocos2d-x 内存管理心得
- cocos2d-x 内存管理 retain release
- Cocos2d-x 内存管理的一种实现
- 【深入了解cocos2d-x 3.x】UI树(2)——UI树的内存管理机制
- cocos2d-x内存管理机制详解
- cocos2d-x内存管理注意事项
- Cocos2d-x内存管理(二)
- cocos2d-x 3.0内存管理相关宏
- 【Cocos2d-x源码分析】 Cocos2d-x内存管理解析