【已解决】removeSpriteFrame在安卓真机里或win里跑内存不会减少

测试版本:cocos2dx3.2 VC2012 4.4.4 MIUI6&4.1miuiv5

removeSpriteFrameByName(xxx.png)后在安卓真机里或win里跑内存不会减少,但是此文件确实已经被清除了
假设removeUnusedSpriteFrames()后再次想使用资源已经都报错了,但是清除后内存为何一点都不下降?
还有就是用完removeUnusedSpriteFrames后再新建场景的时候计数为1的缓存都被清掉了但是新建场景后却不加载新的缓存?
使用removeSpriteFrames有同上的问题,前面看别人发帖2.2.3也遇到类似的问题了。。。新建场景没有该缓存但却不加载导致出错,应该怎么弄呢?(这两条我的代码也有点问题暂不讨论,但是其他的确实如此)
在手机里(就用手机自带的资源管理器看的)不停地加载不同的SpriteFrame内存会一直涨,但是在电脑(我用资源管理器看的)里却竟然不会涨?这是为什么?

我是在onExit函数里清除的

void HelloWorld::onExit()
{
Layer::onExit();

SpriteFrameCache::getInstance()->removeSpriteFrameByName(“xxx.png”);
CCLOG("--------------------------");
SpriteFrameCache::getInstance()->removeUnusedSpriteFrames();

}

===============================================================================================
谢谢2楼!!!其实就是没有清楚Texture缓存…

学习了:2:

从本质上来说SpriteFrame只是一个对帧进行描述的对象,一方面关联一张纹理图片,一方面解释对应帧在图片的位置和范围关系。

而且一般内存占用比较高的是纹理,你Remove SpriteFrame并不会移除其关联的纹理,内存自然不会下降。但是既然你已经移除了Frame,再要用这帧肯定是不行的。

如果完全释放,还需要 看看 Texture 的缓存。

1赞

真是太感谢了!!!!!!!

学习了:14: