问题在于:有时,在玩GHCI时,我最终错误地运行了无限计算。发生这种情况时,大多数情况下,我的计算机崩溃了,我甚至无法使用Ctrl + C打断它。 我想知道是否有办法在某种模式下运行GHCI(或像Hugs这样的其他交互式控制台),允许我在内存耗尽之前中断程序。可能为递归深度或使用的内存设置虚拟限制。
(这个问题可能与Is there a way to limit the memory, ghci can have?重复,但这也考虑了递归深度限制的可能性,而不仅仅是内存限制。)
答案 0 :(得分:3)
启动GHCi时,您可以尝试使用RTS options to control the garbage collector。例如,
ghci +RTS -M100M -RTS Foo.hs
应将内存限制为100MB。或者,使用-Ksize
来限制堆栈(默认情况下,它受到堆的80%限制)。