haskell – GHC垃圾收集器(在移动设备上)的效率如何?

所以这必须提前几千次,但我刚读了
this article,详细说明为什么Android和iOS上的垃圾收集速度很慢.

其中一个要点是垃圾收集很好,只要有足够的空间供收藏家工作.

我的问题是:GHC的内存管理实现是否也容易受此影响?

最佳答案 它可以,虽然完整的情况更复杂. GHC主要使用复制收集器.当堆增长一些量时,会触发GC,
currently 2x.由于复制收集器的策略是将活动对象复制到新内存中,因此提供可用RAM非常重要,尽管不是该文章指示的实时数据量的6倍. . GHC的IIRC约为2.5-3x,是最低的.

GHC还提供了一个压缩收集器,它不需要太多额外的RAM.压缩和复制收集方案之间的选择是根据内存使用情况和RTS’s -c and -M flags动态进行的.

点赞