我试过但看起来我的ui仍然落后于gc.collect。有可能吗?有一些技巧吗?主要目的是减少自动运行的gc.collect的滞后。
答案 0 :(得分:4)
这不会解决你的问题。解决方案是在游戏过程中不分配内存。请改用对象池。使用对象池,您将重新使用GameObjects而不是实例化并销毁它们。
修改强>
Unity 2017支持C#4.5,因此您现在可以执行此操作,但正确的解决方案是使用对象池。这样,您就不必一直致电GC.Collect
。
答案 1 :(得分:2)
只能从C#4.5开始执行non-blocking garbage collection。
因此,使用Unity从哪个线程调用收集并不重要(如果我没记错的话,Mono版本应该对应于C#3或3.5)。
avoid尽可能多地进行运行时分配是一种很好的做法。
您可以手动定期触发垃圾回收,以避免出现峰值。