如何在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
- 将“托儿所”==“分配区域”大小设置为非常大的大小,例如
,因为只有在分配区域已满时才会执行GC-A100G
请注意,内存很快就会用完。我将nh2和Thomas的答案结合到一个新的内存中,得到了很好的结果
+RTS -I0 -A90G -G1 -m1 -RTS
我有100GB的RAM,所以我认为90G
是一个很好的分配区域大小
我还习惯于在适当的时间点手动触发GC,并跟踪在GC中花费了多少时间。。。。您可能会很快耗尽RAM,但不是每个人都会。;-。此外,您还可以通过标记扫描、-c
、切换到仅一代(-G
)消除副本收集,并降低所需的可用空间量(-mN
)。