翻译:https://unity3d.com/cn/learn/tutorials/topics/best-practices/managed-memory
理解托管堆对 Unity 中的内存管理至关重要。 有关分析托管内存和如何优化内存的更多信息,请参阅了解 Unity 中的理解优化部分。
一、Assets
资产在运行时影响本机内存和托管内存。 在用户终止应用程序之前,Unity 运行时不会将托管内 存返回到操作系统进行重用。 如果托管堆变得过于支离破碎并耗尽可用内存,则它会增大。 由于这种不可预测的行为,知道资产如何占用托管内存是非常重要的:
- 使用Destroy(myObject)来销毁一个对象并释放其内存。 将对象的引用设置为 null 并不会破坏它
- 您应该将持久(long-term)对象设置为类,将临时(short-term)对象设置为结构。 结构不在堆上分配,因此不会进行垃圾回收。
- 重用临时工作缓冲区以保持临时垃圾较低,而不是频繁分配。
- 枚举数在退出之前不会清除其内存。
- 您应该避免永无止境的协程,尤其是在 on 中分配大量托管内存时,因为协程会保持堆上的堆栈分配,直到协程结束。
请阅读