可以跳过托儿所吗?

dfe*_*uer 25 garbage-collection haskell ghc

如果我知道某个值可能会在它第一次遇到垃圾收集器时存活下来,有没有办法让GHC知道,所以它可以直接在托儿所外的某个地方分配它?例如,如果我用一堆较小的碎片构建一个大型结构,我知道每个碎片至少会持续到整个结构完成.

Don*_*art 23

GHC垃圾收集器中,没有用于暗示应该分配对象的生成的钩子.但是,您可以通过以下几种方式利用操作行为:

  • 根据数据类型,您可以利用固定对象区域来完全绕过世代阶段.

  • 通过确保长寿对象被长寿的东西指出来利用急切促销 ......

  • 将数据转换为CAF并完全绕过动态分配.