内存增长过快,导致内存溢出,程序退出

Message from debugger: Terminated due to memory issue。
(1)在首页有背景音乐循环,还有三个一直循环的action(moveby的序列),停在首页内存一致上升。进入首页初始时为100m,然后逐渐上升。
(2)程序有100多个场景,通过翻页切换(先preloadScene,再loadScene),翻页过程中内存一直上升,偶尔会有下降(是不是引擎内存回收了?),但下降的不够多,如果快速翻页,很快就退出了。load一页增加10m左右内存。所有的页面的挂载的脚本组建都相同,背景图、spine动画和音乐不同。

真机iphone6。

可以提供用例给我们测试吗?另外你使用的版本是?

我用的是1.2.0-rc2,整个项目太大了,我看怎么摘出一个用例。
另:预加载被我注释了(忘记了),是不是native环境就不用preload预加载了?

嗯, native 不用预加载

1赞

您好,我给您发站内信了,我怎么给您传demo呢?

回复你了,谢谢

给您发送邮件啦:)网速慢,才上传成功。

可以通过texture.releaseTexture方法手动释放图片资源么?
所有的图片和spine 动画都是通过creator的编辑界面拖入的。
切换场景后,内存一致增加,内存资源不释放,请问官方需要手动释放图片资源么,如果手动的话texture.releaseTexture这个方法可行么?
目前这个方法在native环境下说是无此方法,什么时候可以提供呢?
项目已经到了上线的时间,但是内存溢出问题解决不了,cc.textureCache也都清除了,但是没有效果。
希望官方技术或者有这方面经验的朋友可以帮帮忙,感谢:)

我的建议是使用单场景,用预制体做layer

我的项目需求是每个场景相当于一页书,每页都有动画内容,还有配音和字幕。
用prefeb封装这些资源,提前编辑好后,变为prefeb?感觉这样不是很好编辑调试,不够灵活呢?

图片资源的释放怎么才能做到呢,这个和用场景还是prefeb应该无关吧?

每个场景都有spine动画,切换场景后资源不释放,和spine动画有关么?@jare

你的需求和我已经完成的项目很像 你可以在加载每个场景之前 释放掉所有不用的资源 图片和声音 就没问题了。。 当然 我用的是 cocos2d-js 没有用creator

您好,请问您是通过什么方法主动释放的图片和音频资源呢?在creator里没找到合适的api

大家用creator 开发的项目都没有遇到内存释放的问题么?

creator默认使用的是新内存模型还是旧内存模型呢?

cc.sys.garbageCollect()也调用了,cc.textureCache也清除了,所有音频都删除了(应该和音频无关了吧),但是内存还是只增不降低,自认为能做到的事情都做到了,项目已经过了上线的时间了,希望官方可以提供帮助

你好,你是 MQL 团队吧?今天我一整天都在调试你们的项目。
目前 creator 使用的是旧内存模型,将会尽快升级到新内存模型。
1.2.1 将会引入场景资源自动释放机制,届时你们可以把所有可翻页的场景(首页、菜单、对话框场景除外)设置为自动释放,这样内存就能平稳。
此外,目前 Creator 包括引擎底层确实有几处内存泄露,我们会在 1.2.1 之前修复。

1赞

感谢您的回复和您的团队的辛苦付出,实在是不好意思,我也是没有办法了,自己实在是搞不定,从creator开始接触的cocos,一直以来得到了官方的大力支持和帮助,我会耐心等待的,再次感谢cocos团队。

1赞

不用客气,这是应该的

1赞

万分感谢:)