请问给位老大,开发好的native应用,内存一直暴增,destroy 和场景的自动释放都用了,没效果,还有什么可能导致的呢?或者还有其他什么方法可用吗?动态加载的资源是在切换场景的时候用cc.loader.releaseAll();统一释放的。其他通过cc.instantiate 创建的都通过destroy释放了,但是内存还是只加不减,一直加到崩溃为止~~求解决方案!!!!
6赞
你首先要找到是哪个地方导致的内存只增不减,是来回切换场景?还是战斗过程中?
是切换场景!
Creator的内存释放是由 JS 引擎控件的,当 JS 引擎 GC 的时候会把对应的 native 对象的内存也一起释放掉,但是这可能会导致内存释放不及时的情况。你可以在切换切换场景之后,手动调用 GC 试试。
调用这个试试? cc.sys.garbageCollect()
这个需要勾选场景的 auto release resources 选项才可以正常释放,loader releaseAll 目前并不能彻底释放资源
都已经勾选了,还是一点都不释放,不是释放不测底,是一点都不释放,1.2最多也就是不释放,再次加载不会重复增加内存,刚测试了1.3bate8,我靠惊呆了,竟然会重复加载,释放不掉还重复加载,内存直线升上去!!!
你是通过什么工具查看的?
我的是native项目,编译ios后通过xcode可以查看
期待早日解决。我当前1.2.2 在xcode中查看,确实无释放迹象。
请问用网页预览时会这样吗?
弱弱地问一句,在chrome开发者工具中如何查看,现阶段还没留意过。
在pc浏览器观察没有问题,手机没有测试过~
谢谢。已观察,没有明显增加的趋势,且有释放的迹象,只是不是立即释放。
顶起来~~坚决不能沉
1赞
跟上![]()
1赞
放心吧,我明天就会看的,今天还在整 loader
1赞
跟踪了一下,目前阶段手动 load 的 prefab 是想释放干净很繁琐,我们会有新的解决方案。将 prefab 在场景中依赖不手动加载的话,可以通过场景的自动释放完成释放。另外,一个 prefab 加载好之后,不要去 loader 中 release 它,这样会被重复使用,不会造成内存的大幅度增长。

