3

这就是问题所在:有时,在使用 GHCI 时,我最终会错误地运行无限计算。发生这种情况时,大多数情况下,我的计算机会崩溃,我什至无法使用 Ctrl+C 来中断它。我想知道是否有办法以某种模式运行 GHCI(或其他交互式控制台,如 Hugs),允许我在内存耗尽之前中断程序。也许为递归深度或使用的内存设置一个虚拟限制。

(这个问题可能重复了Is there a way to limit the memory, ghci can have?但这也考虑了递归深度限制的可能性,而不仅仅是内存限制。)

4

1 回答 1

3

您可以尝试在启动 GHCi 时使用RTS 选项来控制垃圾收集器。例如,

ghci +RTS -M100M -RTS Foo.hs

应将内存限制为 100MB。或者,使用-Ksize来限制堆栈(默认情况下,它受到堆的 80% 的限制)。

于 2015-04-05T23:18:16.740 回答