3.8.4版本场景切换资源未释放,来回切换内存更是无限上涨

Creator 版本:3.8.4;
目标平台:ios;
Xcode版本:15.4;
手机型号 iphone12mini & iphone6s;
之前哪个版本是正常的 :Creator 版本:3.8.0

3.8.4版本场景均有勾选Auto Release Assets,并且都很干净只是放了几张 Sprite,来回切换场景内存就一直上涨,切到空的场景内存都不会下降,在3.8.0却是正常的。附上demo,寻求解决办法!assets.zip (3.2 MB)

不要溺了 :fearful:

感谢反馈,我测试一下。
另外其他平台,比如 web 上是否也有此问题?

web不会,windows也没释放上一个场景内存,安卓还没调试过,大概率也一样;

:ok_hand:t2:,我试试。

这个问题以前说过好多次 也解决过很多次 现在又冒出来了

有结果了么

把红框内的这两行先注释掉。再看看。

感谢反馈。
修复补丁:

找到原因了,感谢反馈,此问题是 3.8.1 引入的改动导致的。
修复补丁:

会在 3.8.5 中带上。

请问这个改动 https://github.com/cocos/cocos-engine/pull/17991

还需要吗?

还是只需要修复

即可?

都需要的。

1赞

另外,3.8.1 开始,对 Metal 的 Buffer 管理有一些区别。gfx metal 底层会使用 staging buffer 优化纹理加载逻辑,这会导致 staging buffer 会缓存住一部分的内存。因此在 xcode 中切换场景,内存可能不会下降得非常明显。我们会在后续版本(可能 3.8.6)中优化 shrink staging buffer 的策略。

如果希望保持 3.8.0 的策略,可以手动注释掉 MTLTexture.mm 文件中的如下这行代码:

1赞