23

因为我意识到游戏规则逻辑应该处理巨大的复杂性,所以我正在考虑在游戏领域中使用非典型语言作为游戏中的逻辑脚本语言。游戏脚本的原因是用较少的代码表示复杂的逻辑。所以需要非常好的抽象语言。Haskell对软件实时应用(如游戏)的GC性能如何?

但是大多数抽象语言都使用GC。通常情况下,GC会使CPU突发负载。基本上,它推迟清理内存操作,并立即执行。对于包括游戏和GUI在内的实时图形非常重要。 AFAIK,Haskell的GC与其他基于GC的语言有一点不同,它是不可变属性的原因。很难想象。我找不到任何详细的文件。

有什么不同?并且它是否为长时间运行的程序免费提供CPU? (随着时间的推移以及分布式的负载,手动完整的GC命令可以要求每个刻度)

+0

另请参阅http://stackoverflow.com/questions/1263711/using-haskell-for-sizable-real-time-systems-how-if – 2011-05-12 02:53:16

回答

6

你可能想看看用卢克 - 帕尔默从这里开始线程:http://www.haskell.org/pipermail/haskell-cafe/2010-February/thread.html#73881

+2

链接应该是http://www.haskell.org/ pipermail/haskell-cafe/2010-February/073881.html - pipemail在视觉标记特定线程方面做得不好。 – 9000 2010-12-19 16:02:38

+1

或http://thread.gmane.org/gmane.comp.lang.haskell.cafe/70910 – 2010-12-21 00:08:25

+0

谢谢。谈话有助于获得乐观的看法。但是我觉得缺乏批准的数据...可能还没有可验证的应用程序。 – Eonil 2010-12-21 11:18:45

4

您可能感兴趣的this blog post by Simon Marlow有关移动GHC从停止世界的收集到更多的并发暂停时间更适合软实时应用程序,如游戏。

我自己并没有对GHCs延迟剖面进行基准测试,但据我所知,这些0.0007ms的暂停时间可能看起来很小,但它们与堆积大小成正比,这对于玩具井字棋程序来说很小堆和停顿时间将会增加数量级。

+0

谢谢。我决定做一个耗费巨大内存的试点项目:) – Eonil 2010-12-21 15:38:08

+0

那么练习的结果是什么? – 2011-04-25 14:09:57

4

您可能感兴趣的商业Haskell游戏,Nikki and the Robots,发布在 2011 by Joyride Labs。

enter image description here

他们似乎没有被与具有一个垃圾收集任何麻烦。