关于2dx的内存清理问题

最近我们优化系统,就是发现,在wp的平台下想清除缓存降低内存消耗,执行如下的代码

CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames();
CCSpriteFrameCache::sharedSpriteFrameCache()->purgeSharedSpriteFrameCache();

虽然Log显示的remove各种纹理文件,但是实际从wp的内存使用显示上并没有消减,只有执行了

CCDirector::sharedDirector()->purgeCachedData();

才可以彻底将内存降下来,但是这个方法就会把所有可能清理的都清理掉,但是我们想有选择性的清理,并且确实是可以降低内存的清理。

请问有没有什么比较好的策略或是方法,谢谢

removeUnusedSpriteFrames只是清除了SpriteFrame,并不会清除纹理所占的内存。purgeSharedSpriteFrameCache也只是干掉这个单例。。。所以对内存的影响不会很大。

清除无用纹理用这个

void CCTextureCache::removeUnusedTextures()

不过,我做过测试,如果不干掉那个SpriteFrameCache单例的话,removeUnusedTextures不起作用,这个就是导致一个问题,我从一个界面出来,就要把单例都干掉,然后还要都重新加载一遍,如果我比如只是一部分内容想干掉,一部分内容不想干掉一般怎么做?

我一般先全部清掉,再加载我要用的