背景:
版本是cocos2d-x3.6,语言C++,平台ipad,测试机ipad2。程序有二十多个场景,全部是cocos2.2做的,然后用CSLoader载入。
问题:
每当场景replace后,内存只增不减(使用Xcode debug navigator查看的内存占用),结果载入多个之后就会崩溃。尤其是有些场景包含Armature,占用内存很可观。大概10个场景以后,内存飙到280MB左右,再切换就导致随机崩溃。代码全部使用create创建对象,不使用new。
每次切换场景时都尝试以下代码释放缓存:
AnimationCache::getInstance()->destroyInstance();
ArmatureDataManager::getInstance()->destroyInstance();
Director::getInstance()->purgeCachedData();
但用处不大(会稍微降低内存增长速度)。
后来拿官方的cpp-tests做测试,发现官方的代码一样是只增不减,尤其是运行Armature测试和WebView测试的时候,内存占用量相当大,而且不释放。
以下是截图:
我的程序在切换几个场景之后的内存占用情况:
cpp-tests执行完auto test后的内存占用情况:
目前我想不到什么有效的方法解决这个问题,甚至不知道问题出来哪里,希望有人帮忙,万分感谢!!!

