限制GHC的内存使用

时间:2016-12-28 01:47:48

标签: haskell ghc

有没有办法在编译期间限制ghc的内存使用量,而不会影响代码质量?我在一台2GB的机器上,它在构建期间暂停了。 GHC版本7.10.3,Ubuntu 14.04,4GB交换。

1 个答案:

答案 0 :(得分:0)

一种方法是使用具有内存限制的容器。我目前正在测试该理论,并且可以使用,但是您将面临一个重大缺点,因为您为内存设置的限制将导致GHC仅分配交换空间。这将需要很长时间。

也看起来this solution也是个好主意。我引用的是:

  

-j只是告诉GHC跨模块并行编译。这个可以       增加编译器所需的最大堆大小。

     

-A设置托儿所的大小;首先订购不影响       最大堆大小,但是在并行运行时很有用       程序(例如带有-j的ghc)以最小化我们       必须进行垃圾收集。

     

-M的定义有点棘手。首先,它定义了最大堆      我们将终止的大小。但是,我们也在      垃圾收集器来做出有关GC调度的各种决策。生病      承认我对这里的细节不是很熟悉。