所以这必须提前几千次,但我刚读了this article,详细说明为什么Android和iOS上的垃圾收集速度非常慢。
其中一个要点是,只要有足够的空间供收藏家工作,垃圾收集就可以了。
我的问题是:GHC的内存管理实现是否也容易受此影响?
答案 0 :(得分:2)
可能是,尽管情况比较复杂。 GHC主要使用复制收集器。当堆增长一些量currently 2x时,会触发GC。由于复制收集器的策略是将活动对象复制到新内存中,因此您可以使用可用RAM非常重要,尽管不是该文章所指示的实时数据量的6倍。 GHC约为2.5-3x的IIRC约为最低值。
GHC还提供了一个压缩收集器,它不需要太多额外的RAM。压缩和复制收集方案之间的选择是根据内存使用情况和RTS's -c
and -M
flags动态制作的。