gpt4 book ai didi

debugging - 有没有办法限制ghci可以拥有的内存?

转载 作者:行者123 更新时间:2023-12-03 06:26:13 30 4
gpt4 key购买 nike

我习惯使用 ghci 来调试我的代码。通常,类似的事情会发生(当然不是那么明显):

ghci> let f@(_:x) = 0:1:zipWith(+)f x
ghci> length f

然后,一段时间内没有任何反应,如果我 react 不够快,ghci 可能会吃掉 2 GB RAM,导致我的系统卡住。如果为时已晚,解决此问题的唯一方法是[ALT] + [PRINT] + [K]。

我的问题:有没有一种简单的方法来限制 ghci 可以消耗的内存,比如说 1 GB?如果超出限制,计算应中止或 ghci 应被终止。

最佳答案

实现此目的的一种独立于平台的方法是向 Haskell 运行时提供 -M 选项作为选项,如下所示

ghci +RTS -M1m

参见the GHC documentation’s page on how to control the RTS (runtime system)了解详情。

ghci 输出现在如下所示:

>ghci +RTS -M10m
GHCi, version 6.12.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let f@(_:x) = 0:1:zipWith(+)f x
Prelude> length f
Heap exhausted;
Current maximum heap size is 10485760 bytes (10 MB);
use `+RTS -M<size>' to increase it.

关于debugging - 有没有办法限制ghci可以拥有的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3766656/

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