私はGlossを使ってHaskellでRTSゲームを作成していますが、非常に単純なプログラムでさえ、実行するにつれてますます多くのメモリを占有することに気づきました。たとえば、次のプログラムはメモリ使用量を徐々に増やします(1秒あたり約0.025MBが必要になります)。
module Main (
main
)
where
import Graphics.Gloss
import Graphics.Gloss.Interface.IO.Game
main =
playIO (InWindow "glossmem" (500, 500) (0,0)) white 10 0
(\world -> return (translate (-250) 0 (text $ show world)))
(\event -> (\world -> return world))
(\timePassed -> (\world -> return $ world + timePassed))
実行時にヒープサイズを制限しようとしましたが、制限に達するとプログラムがクラッシュします。より複雑な世界では、この動作がパフォーマンスの問題になるのではないかと心配していますが、これが問題にならないように光沢を使用する方法はありますか?または、仕事に間違ったツールを使用していますか?