关于cocos2dx 3.3的内存问题

现在即便是使用cc.SpriteFrameCache:getInstance():removeSpriteFrames()和cc.TextureCache:getInstance():removeAllTextures()内存也不会降
求问到底是什么问题

不会降是和什么做对比的?

在加载完图片过后的内存,再调用这些释放函数,内存没有变化,我已经在win32、ios、mac上看过了,没有任何变化,但是代码里面已经调用过了glDeleteTextures,所以感觉相当奇怪
我的图片在内存里面有100mb左右,如果释放了内存,能看出很大的变化

没人知道原因么?

版本3.5
语言C++
平台Mac

HelloWorld工程,默认是占用25M内存,我加载了15张2.2M的png图,内存上涨到86M。然后调用

Director::getInstance()->getTextureCache()->removeAllTextures();

内存又下降到25M。

其他平台就不测了。你可以试试。

跟你一样的环境
我多建一个场景,然后两个场景切来切去,内存每次都会加一点 这是为什么呢?
你可以试一下

3.5 mac平台 c++
我复制了一份HelloWorld。点了快一百下。基本上没什么波动。

肯定你有图片还有被引用,试下dump出Texture的引用

不是texture的问题,我是用lua写的
用lua查看当前内存也是一直都在涨,texture方面已经清空了,我再观察一下 到底是哪个出了问题
目前运行mac版本是会,用IOS模拟器看又好像不会 反正我得去研究清楚是哪里出现了问题。

我尝试过removeAllTextures和removeTextureForKey,IOS调试状态下,内存没有降……
快疯了……

dump过,所有的资源都释放掉了,但内存就是还在……

:6: 遇到了同样的问题 。。。楼主解决了吗?

就是没有解决,我的是lua不是c++,但应该是不影响吧

我也是lua,还用了cocostudio编的动画,用了下面这句把cocostudio的动画释放了。。内存就有降了一些了。。
for k,v in pairs(self.__jsonTab) do
ccs.ArmatureDataManager:getInstance():removeArmatureFileInfo(v)
end
cc.Director:getInstance():getTextureCache():removeAllTextures()

cc.Director:getInstance():getTextureCache():removeAllTextures()
早已用,内存无变化……郁闷中……

ccs.ArmatureDataManager:getInstance():removeArmatureFileInfo(v) 。。。。。。。。。。。。。。。。

我没用cocos studio……

那么多人反馈,就是每人去解决,我已经折腾了一周了,一样的问题,内存一直涨,哎

也是3.3,lua, 同样的问题, 查找中…
一个列表界面,里面未用过Armature,基本结构用cocostudio生成,列表项使用纹理分两种方式,
pvr的缓存和本地读取;
关闭界面后延迟清理纹理,打印纹理列表跟界面打开前一致;
vs,xcode下面都跑过泄露分析,没有泄露提示~ 搞不明白是哪一部分耗用了。

另外spine的使用也会出现这种情况。

lua入口作过如下设置:
cc.Image:setPVRImagesHavePremultipliedAlpha(true)
cc.Texture2D:setDefaultAlphaPixelFormat(cc.TEXTURE2_D_PIXEL_FORMAT_AUTO)

以上都非真机测试, 后来在真机release情况下查看内存变化正常,over。