我在 Haskell 中使用 Gloss 创建 RTS 游戏,但我注意到即使是非常简单的程序在运行时也会占用越来越多的内存。例如,以下程序将逐渐增加其内存使用量(它将需要 ~0.025mb per second )。
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))
我尝试在运行时限制堆大小,但这只会导致程序在达到限制时崩溃。我担心当我有一个更复杂的世界时,这种行为会成为一个性能问题,有没有办法使用光泽度这样这不会成为问题?还是我使用了错误的工具来完成这项工作?