【问题标题】:scene transition causes memory leak场景转换导致内存泄漏
【发布时间】:2018-12-11 14:09:33
【问题描述】:

我正在使用 Xcode 10.1 IDE 和 swift 4.2 制作一个简单的游戏

我设计了主菜单系统,以便每个页面 UI 都通过单独的场景呈现。

每次加载新场景时,内存使用量都会增加大约 0.1 MB。不多,但我不想用这个问题开始扩展游戏。

Memory leak when presenting SpriteKit scenes

Memory problems when switching between scenes SpriteKit

Tab-based SpriteKit Apps and Scene Caching

我已经通过参考资料和在线进行了很好的了解。我通过以下方式检查了保留周期: 在所有使用的场景和对象类的末尾插入 deinit 语句。它们都被正确调用。分析应用程序以寻找僵尸对象和泄漏,运行时分析器结果中没有任何明显的显示。

有没有人知道导致内存泄漏或场景转换缓存的原因以及防止这种情况的方法?

我现在很难扩展游戏规模似乎是错误的做法,因为随着复杂性的增加,问题可能会变得更加复杂。

【问题讨论】:

  • 如果没有任何代码,很难弄清楚可能是什么问题。因为 0.1 MB 太小了,所以我现在不用担心它,只需要让你的游戏运行起来,稍后再处理一些小细节。

标签: swift xcode


【解决方案1】:

经过进一步测试,我发现问题在于通过场景编辑器附加声音动作。

通过代码附加动作可提供稳定的内存使用,通过场景转换不会增加 0.1MB。

这只是部分答案,但如果其他人遇到此问题并有更多信息,请发布

【讨论】:

    猜你喜欢
    • 2010-12-19
    • 2019-06-20
    • 2015-07-06
    • 2014-06-07
    • 2013-11-20
    • 2011-10-28
    • 2016-01-18
    • 2012-12-13
    • 1970-01-01
    相关资源
    最近更新 更多