项目发布到IOS上时遇到个蛋疼的问题: 在切换场景的时候内存会增加1M,每切换一次增加1M,而且不会降,即使切换的场景中没有对象内存也会增加1M。
在场景退出时,对 精灵缓存什么的都进行了清理,还有什么问题导致这么内存泄露问题呢?
这描述太简单了吧,完全没有足够的信息来进行分析啊
我有两个场景来进行切换,场景A运行内存80M,场景B运行内存90M,当我在场景A和场景B之间切换时,每切换一次内存增加1M,比如从场景A切换到场景B,场景B内存增加1M,反之亦然,而且貌似没有上限,就这样会场景A和场景B的内存都会增加到250M左右(之后我没有在测试了)。
在我测试的过程中,场景A与场景B的内容和数据都没有发生变化,即使在场景退出时我没有清理精灵帧缓存、纹理、帧动画缓存,场景切换时也不应该增加1M啊?
同样遇到这个问题,我内存增加到500M闪退了
— Begin quote from ____
引用第2楼longolder于2014-10-22 13:33发表的 回 1楼(阳光七月) 的帖子 :
我有两个场景来进行切换,场景A运行内存80M,场景B运行内存90M,当我在场景A和场景B之间切换时,每切换一次内存增加1M,比如从场景A切换到场景B,场景B内存增加1M,反之亦然,而且貌似没有上限,就这样会场景A和场景B的内存都会增加到250M左右(之后我没有在测试了)。
在我测试的过程中,场景A与场景B的内容和数据都没有发生变化,即使在场景退出时我没有清理精灵帧缓存、纹理、帧动画缓存,场景切换时也不应该增加1M啊? http://www.cocoachina.com/bbs/job.php?action=topost&tid=235572&pid=1080702
— End quote
— Begin quote from ____
引用第3楼tubo0001于2014-10-29 23:04发表的 :
同样遇到这个问题,我内存增加到500M闪退了 http://www.cocoachina.com/bbs/job.php?action=topost&tid=235572&pid=1085945
— End quote
2.x系列的CCPoint这类没有继承CCObject的C++对象无法回收导致。
缓动,锚点等都会用到CCP。
可以升级到3.X,已解决
测试代码:
collectgarbage("collect")
print("init game",collectgarbage("count"))
for i=1,5000 do
-- 3.x版本
-- local p = cc.p(1,3)
-- 2.x版本
local p = ccp(1,3)
end
print("add point",collectgarbage("count"))
collectgarbage("collect")
print("gc point",collectgarbage("count"))
楼主解决了吗?我在3.X的版本上也遇到一样的问题
顶一下, 已经解决了么???这种事情简直是坑我们啊!!