在加载屏幕期间,我应该给垃圾收集器打电话吗?


9

因此,出于好奇,我最近阅读了一些有关Garbage Collection的内容,并且经常重复执行某些操作:垃圾收集会导致程序突然变慢,具体取决于收集的“深度”。

但是在视频游戏中,有时用户并不能真正注意到一个小的延迟:加载屏幕。因此,我认为,在加载阶段(通过Collect())继续进行完整的垃圾收集可能会很有用,因为必须等待一两秒钟才不会真正影响用户。

我的问题是,这真的有用吗,或者这样做没有真正的好处?


作为我的游戏调试过程的一部分,我为用户提供了随时调用垃圾收集器的选项。根据具体情况,它也可能存在于游戏的最终版本中。我建议在加载屏幕期间以及通常在不会视觉中断用户的其他任何时间调用它。如果您的游戏中有一个死亡动画进入黑屏,这也是调用垃圾收集器的绝佳机会。
Krythic

Answers:


13

是的,将其称为加载时的最后一件事。

由于GC,这将使级别开始和第一次延迟之间的时间最大化。

您还应该尝试总体上最小化分配,以免在一个关卡中没有任何滞后。

360和WP7表现不佳双路径为垃圾收集器涅槃


1
另外,这几乎是您应该调用的唯一时间-特别是在紧凑型框架(XBox,WinPhone)上。
乔纳森·迪金森

1
@JonathanDickinson:绝对。只能在用户希望暂停的地方真正调用它(通常是加载,也许也可以保存),并且绝对不要将其作为循环/常规事件的一部分。
乔治·达基特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.