有没有办法在编译期间限制ghc的内存使用量,而不会影响代码质量?我在一台2GB的机器上,它在构建期间暂停了。 GHC版本7.10.3,Ubuntu 14.04,4GB交换。
答案 0 :(得分:0)
一种方法是使用具有内存限制的容器。我目前正在测试该理论,并且可以使用,但是您将面临一个重大缺点,因为您为内存设置的限制将导致GHC仅分配交换空间。这将需要很长时间。
也看起来this solution也是个好主意。我引用的是:
-j只是告诉GHC跨模块并行编译。这个可以 增加编译器所需的最大堆大小。
-A设置托儿所的大小;首先订购不影响 最大堆大小,但是在并行运行时很有用 程序(例如带有-j的ghc)以最小化我们 必须进行垃圾收集。
-M的定义有点棘手。首先,它定义了最大堆 我们将终止的大小。但是,我们也在 垃圾收集器来做出有关GC调度的各种决策。生病 承认我对这里的细节不是很熟悉。