我在 unity3d 工作,最近遇到了一个非常令人费解的问题(而且确实是项目的终结者)。基本上,当我在编辑器中按播放,然后按停止时,unity 会占用我的一些内存,并且拒绝归还它(当我的 mac 内存不足时我发现了这一点)。在我的主要项目中,每次迭代都会消耗大约一半的时间(显然是一个真正的问题)。我开始从我的项目中删除代码和对象,但无济于事。最终我刚刚开始了一个新的空项目(甚至移除了相机和灯光),你瞧,同样的问题。不是半场演出(更多的订单是 20 兆),但仍然是泄漏。我不知道这可能是什么。以下是一些需要注意的事实:
- 我最近升级到 Unity 2017
- 我正在使用 16 GB 内存的 macbook pro
- 在活动监视器中,使用的总内存在每次播放/停止迭代时都会增加,但 Unity 进程内存不会。事实上,我找不到使用额外内存的进程。
- 我经常运行多个 Unity 实例,并通过 UNET 相互通信。但是,在没有打开其他实例的情况下运行的空项目仍然泄漏。
- 当我让计算机进入睡眠状态时,会发生以下两种情况之一:Unity 实例崩溃,或者大量内存将被释放(大约一半的内存被启动和停止 Unity 占用)
有人知道这可能是什么吗?有没有人经历过类似的事情?如果这是一个 Unity 错误,我将如何通知正确的人/避免问题?如果我做错了什么,我应该改变什么?