垃圾收集 - 响应

时间:2012-12-13 22:14:28

标签: c++ c garbage-collection

一周前,我的教授谈到了垃圾收集及其响应能力。基本上他说如果你使用垃圾收集,你将在代码执行之前总是有一个非常小的延迟。

现在你可以说用户不会识别延迟,因为它非常小。

我正在为我的最终学士考试制作游戏引擎,目前我正在决定为引擎选择哪种脚本语言。


现在我有以下情况。 让我们假设您使用第一人称相机创建游戏。而且我们还要说gamelogic是用垃圾收集的语言编写的。

这是不是意味着用户会遇到比使用没有垃圾收集的语言编写gamelogic的游戏更多的输入延迟?

现在输入延迟很难预测,因为有太多的系统会产生延迟。

例如input -> gamecode executing -> graphics rendering -> rendering on the screen

大致可以预测我会有多少延迟如果我使用的语言与gc对比没有gc的语言? <1ms, <10ms <100ms

1 个答案:

答案 0 :(得分:1)

关于GC的唯一“可怕”事情是(1)它可能“感觉”慢,因为它一次清理了许多物体,而不是在代码进展时一个接一个地去做,就像你一样这与手动内存管理有关,而且(2)它是非确定性的,这使得它有些不可预测(但不像听起来那么严重)。

除了GC在特定时刻发生,因此它不会使您的代码“不断”变慢。事实上,我说当程序不在GC中时程序变得快一点,因为在GC之外它不会像在非GC语言中那样(并且应该)清理对象,而内存管理机制GC之后通常意味着分配比非GC语言的分配快一点。