Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GHC Haskell中禁用垃圾收集?_Haskell_Ghc - Fatal编程技术网

如何在GHC Haskell中禁用垃圾收集?

如何在GHC Haskell中禁用垃圾收集?,haskell,ghc,Haskell,Ghc,我如何才能禁用地面军事系统,或大幅降低地面军事系统的频率 比如给它一个+RTS选项,用于一些巨大的堆或分配大小 我想看看我的程序在没有GCs发生的情况下是如何运行的。(在freenode上的#ghc的carter的帮助下) 没有完全禁用GC的开关。相反,请使用以下所有+RTS运行时选项: 使用-I0禁用空闲时间垃圾收集 将“托儿所”==“分配区域”大小设置为非常大的大小,例如-A100G,因为只有在分配区域已满时才会执行GC 有关这些选项的说明,请参见 请注意,内存很快就会用完。我将nh2和

我如何才能禁用地面军事系统,或大幅降低地面军事系统的频率

比如给它一个
+RTS
选项,用于一些巨大的堆或分配大小

我想看看我的程序在没有GCs发生的情况下是如何运行的。

(在freenode上的#ghc的carter的帮助下)

没有完全禁用GC的开关。相反,请使用以下所有
+RTS
运行时选项:

  • 使用
    -I0
    禁用空闲时间垃圾收集
  • 将“托儿所”==“分配区域”大小设置为非常大的大小,例如
    -A100G
    ,因为只有在分配区域已满时才会执行GC
有关这些选项的说明,请参见


请注意,内存很快就会用完。

我将nh2和Thomas的答案结合到一个新的内存中,得到了很好的结果

+RTS -I0 -A90G -G1 -m1 -RTS
我有100GB的RAM,所以我认为
90G
是一个很好的分配区域大小

我还习惯于在适当的时间点手动触发GC,并跟踪在GC中花费了多少时间。

。。。您可能会很快耗尽RAM,但不是每个人都会。;-。此外,您还可以通过标记扫描、
-c
、切换到仅一代(
-G
)消除副本收集,并降低所需的可用空间量(
-mN
)。