gpt4 book ai didi

haskell - 即使我的应用程序不访问旧数据,GHC 运行时也会访问旧数据吗?

转载 作者:行者123 更新时间:2023-12-02 13:50:27 25 4
gpt4 key购买 nike

我想知道使用大量交换空间运行 ghc 是否是个好主意,或者是否可行。我的工作负载中大多数数据在 99% 的时间里都是空闲的。实际上,在任何给定时间都有一小部分数据正在被积极使用。这听起来像是让内核交换内存的最佳时机,但 gc 通常是一个问题。不过,Haskell 只有不可变的值,所以理论上它是可行的。

ghc 运行时是否读取旧值,迫使我在每次 gc 或其他东西上换入/换出,或者我是否可以期望我没有接触的内存不会被换入?

请随意编辑标题,我想不出合适的描述。

最佳答案

GHC 使用复制收集器,其中实时/可访问数据的树被复制到新区域,这意味着主要 GC 暂停时间会随着工作集大小的增加而增加,这可能是违反直觉的。

“大多数数据闲置”的属性并不罕见,我认为与 GHC 使用的分代 GC 的分代假设密切相关。

但是,听起来您正在谈论诸如以下之类的事情:在内存中缓存一堆数据。由于上述原因(长时间的 GC 暂停,或者可能是不良行为),这已知是有问题的。紧凑区域是一种实验性功能,可以作为以这种方式处理盒装数据的库的基础,尽管我认为还没有人知道这是否是一个好主意。

因此,很明显,如果您的数据被换出,这只会让本来就很糟糕的情况(大型工作集的长时间 GC 暂停)变得更糟。

关于haskell - 即使我的应用程序不访问旧数据,GHC 运行时也会访问旧数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48596428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com