【1.3内存回收问题】web平台内存会不断增加

实验方式:一个新场景,平台web,浏览器chrome,添加约一百左右节点,开启场景资源自动释放。
进行反复的 loadScene 该场景,你会发现内存会随着时间只增不减(也会有内存回收,但是会不断有像是没有被回收的内存冗余下来),虽然增长并不明显(0.1~0.2KB),但如果你往场景里面开始加控件和纹理,你就会发现内存增长会慢慢开始明显,大约在800个节点的时候内存增长会在(200KB~1M左右,视场景中是否还有别的内容而定)。
虽然资源回收并是不完整回收的,但是一直增长不下降这点…感觉略有不妥…随着游戏玩家的游戏时长增加,游戏迟早会崩溃掉,特别是在IOS下面的微信上以及低端机上。
之前一直以为是闭包原因导致没释放内存,直到添加空白场景和没有任何闭包的环境下,才发现其实只要不断进行场景切换,都会存在这个问题,如果场景够多的话,这一点你会发现非常明显。

以上,如果是我的自身行为或者操作不正确,麻烦各位指正,毕竟我想早点解决这个问题。
因为native端没测过,所以暂不清楚native的内存情况。
引擎版本:
1.3.0~1.3.2版本

另外,好像1.3.2的cc.loader.releaseAll() 使用后内存毫无波动(虽然场景纹理是变黑了,_cache也清零了)。。。。我记得之前某个版本我用这个后内存是直线下降了。

如果是 AB 两个场景相互切换呢?

jsb下内存也会不断的涨。根本回收不完。。。。

我最近仔细的研究了Creator的加载模块,发现了很多的问题。
有些资源根本就释放不干净,还有重复加载的问题!
主要体现在Tile资源,Font资源,还有粒子效果。
tile资源:这个资源你必须要使用之后才会去加载内部所需要的用到的图片,
然而,场景自动释放,根本就释放不掉加载进来的图片,Font同样

粒子资源,如果你自己手动加载可以自己释放,
如果你粒子效果放在预制或者场景中,那么它会加载两次,一次是以url的方式,一次是以uuid的方式
出现重复加载的情况

http://sunmoon-x.com/cocoscreator资源加载1-3-1版本/
这是我自己研究发现的一些问题。在Native上测试了部分,因为本地调试,经常果断时间就会卡主,就没测试完!

1赞

也会增长的,我同一个场景这样做,只是为了方便测试。
因为之前的项目就是有很多场景,在微信和safari上出现了内存溢出,现在节点什么都优化了下来,但这个根本问题解决不下来的话,很麻烦。
因为着急上线,目前能做的就是降低场景节点,延长崩溃时间。
我也看了很早之前的一篇文章,把大部分动态调用的Prefab改成了编辑器引用,实际上帮助并不大。

多谢反馈,这些问题我们会进行修复!

多谢反馈,我会再重新测试一遍!

另外,如果场景里面有循环动作,会导致CPU占比非常高,达到90-100,有的时候就一个动作也是。
uiwebview上面

有结果没呀?

大神啊,顶礼膜拜

求答复呀…

额 就这样沉了。。。。

没有放弃,正在测试呢

即将上线的项目卡这了…悲剧中…我这也在测试更准确的东西, 一有情况再反馈.

麻烦发一个 demo 给我试试!

嗯 现在问题主要还是在 微信和safari浏览器上面玩久了崩溃的问题,安卓反而好一些。
我在chrome上面看到的内存占用在360M左右(游戏所有场景加载完后), JS内存占用50M,纹理100+M,GPU100+M,1.4版本在chrome上面看内存回收好像好一些了。
我忙完给你搞一个微信和safari崩溃的demo。

我这边在 web 平台上实际测试的结果是只有粒子系统存在这个问题,不过经过考虑,这个问题很不好解决,目前先不做处理。我们会在文档中提醒用户这一点。

我需要能重现内存泄露的 demo,麻烦给我一个方便测试的!

嗯,我尽快。

字体文件释放不到啊!

tilemap的图片资源也不能释放!

都是场景启用了自动释放【预制释放也存在问题】(1.3.1)