在使用 Haskell 中的各种算法时,我经常会遇到我创建的程序存在内存泄漏,因为它经常发生在惰性求值中。占用所有内存的程序并不是很有趣,如果我意识到太晚了,我经常很难杀死它。
使用 GHC6 时export GHCRTS='-M384m'
,我的.bashrc
. 但在 GHC7 中,他们添加了一项安全措施,除非程序-rtsopts
使用GHCRTS
. 不幸的是,几乎没有使用此标志编译 Haskell 程序,因此设置此变量会使一切都失败(正如我在升级到 GHC7 后发现的那样,所有程序都突然失败,说“大多数 RTS 选项被禁用。与 -rtsopts 链接以启用它们。 " )。
任何想法如何使用GHCRTS
GHC7,或其他方便的方法如何防止我的程序占用所有内存?