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

他們似乎沒有被與具有一個垃圾收集任何麻煩。