gpt4 book ai didi

haskell - 如何防止 GHC7 编译程序占用所有内存?

转载 作者:行者123 更新时间:2023-12-04 04:22:26 25 4
gpt4 key购买 nike

在使用 Haskell 中的各种算法时,我经常会遇到我创建的程序存在内存泄漏,因为它经常发生在惰性求值中。占用所有内存的程序并不是很有趣,如果我意识到太晚了,我经常很难杀死它。

使用 GHC6 时,我只有 export GHCRTS='-M384m'在我的.bashrc .但在 GHC7 中,他们添加了 security measure除非程序是用 -rtsopts 编译的, 如果在命令行参数或 GHCRTS 中给出任何 RTS 选项,它就会失败。 .不幸的是,几乎没有 Haskell 程序是用这个标志编译的,所以设置这个变量会使一切都失败(正如我在 After upgrading to GHC7, all programs suddenly fail saying "Most RTS options are disabled. Link with -rtsopts to enable them." 中发现的那样)。

任何想法如何使用GHCRTS使用 GHC7 或其他方便的方法如何防止我的程序占用所有内存?

最佳答案

您可以使用 -with-rtsopts=-M384m 编译您自己的程序在编译时设置 RTS 选项(一劳永逸)。您还可以设置不应与 GHCRTS 一起运行的程序的“黑名单”。在您的 .bashrc ;也许像

for i in foo bar baz
do
alias $i="GHCRTS= $i"
done

关于haskell - 如何防止 GHC7 编译程序占用所有内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com