24

因为我意识到游戏规则逻辑应该处理巨大的复杂性,所以我正在考虑使用游戏领域的非典型语言作为游戏逻辑脚本语言。游戏内脚本的原因是用较少的代码表示复杂的逻辑。所以需要非常好的抽象语言。

但是大多数抽象的语言都使用 GC。通常,GC 会导致 CPU 突发负载。基本上它会推迟清除内存操作,并立即执行。对包括游戏和 GUI 在内的实时图形非常重要。

AFAIK,Haskell 的 GC 与其他基于 GC 的语言略有不同,因为它具有不可变属性。很难想象。我找不到任何详细的文件。

有什么不同?对于长时间运行的程序,CPU 是否会突然爆发?(随着时间的推移,负载分布良好,可以为每个滴答调用手动完成 GC 命令)

4

3 回答 3

6

您可能想在这里查看由 Luke Palmer 发起的线程:http ://www.haskell.org/pipermail/haskell-cafe/2010-February/thread.html#73881

于 2010-12-19T13:50:09.223 回答
4

您可能会对Simon Marlow 的这篇博客文章感兴趣,该文章介绍了将 GHC 从停止世界收集转移到与暂停时间更并发的东西,更适合游戏等软实时应用程序。

我自己没有对 GHC 延迟配置文件进行基准测试,但据我了解,那些 0.0007 毫秒的暂停时间可能看起来很小,但它们与堆大小成正比,这对于那个玩具井字游戏程序来说很小,所以真正的堆和暂停时间将大几个数量级。

于 2010-12-19T20:08:58.373 回答
4

您可能对Joyride Labs 于 2011 年发布的商业 Haskell 游戏Nikki and the Robots感兴趣。

在此处输入图像描述

他们似乎对拥有垃圾收集器没有任何问题。

于 2011-05-12T02:57:36.550 回答