如果我知道某个值可能会在第一次遇到垃圾收集器时幸存下来,是否有某种方法让 GHC 知道,以便它可以直接将其分配到托儿所之外的某个地方?例如,如果我用一堆较小的部件建造一个大型结构,我知道每个部件至少会持续到整个结构完成为止。
In GHC 垃圾收集器 https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC没有钩子来暗示对象应该分配到哪一代。但是,您可以通过多种方式利用操作行为:
根据数据类型,您也许可以利用固定对象区域 https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC/Pinnedn 完全绕过代阶段。
exploit 热衷促销 https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC/EagerPromotion通过确保你的长寿对象被某些本身长寿的东西所指出......
将数据变成a CAF https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC/CAFs并完全绕过动态分配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)