一周前,我的教授谈到了垃圾收集及其响应能力。基本上他说,如果你使用垃圾收集,你将在代码执行之前总是有一个非常小的延迟。
现在你可以说用户不会识别延迟,因为它非常小。
我正在为我的学士期末考试开发游戏引擎,目前我正在决定为我的引擎选择哪种脚本语言。
现在我有以下情况。 假设您使用第一人称视角创建游戏。并且假设游戏逻辑是用一种带有垃圾回收的语言编写的。
这是否意味着与玩游戏逻辑是用没有垃圾收集的语言编写的游戏相比,用户会遇到更多的输入延迟?
现在输入延迟很难预测,因为有太多的系统会产生延迟。
例如input -> gamecode executing -> graphics rendering -> rendering on the screen
.
是否可以大致预测如果我使用带 gc 的语言与不带 gc 的语言会有多少延迟? <1ms, <10ms <100ms
最佳答案
关于 GC 唯一“可怕”的事情是 (1) 它可能“感觉”更慢,因为它一次清理许多对象,而不是像您那样随着代码的进行逐一清理会使用手动内存管理,而且 (2) 它是不确定的,这使得它有些不可预测(但并不像听起来那么可怕)。
除了 GC 在特定时刻发生,所以它不会让您的代码“持续”变慢。事实上,我想说当程序不在 GC 中时会变得更快一些,因为在 GC 之外它不会像在非 GC 语言中那样(并且应该)清理对象,而内存管理机制behind GC 通常意味着分配比非 GC 语言要快一点。
关于c++ - 垃圾收集 - 响应能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869450/