gpt4 book ai didi

haskell - Haskell 中的空间泄漏

转载 作者:行者123 更新时间:2023-12-02 05:06:21 26 4
gpt4 key购买 nike

我已经读过很多次了,Haskell 中的惰性求值有时可能会导致空间泄漏。什么样的代码会导致空间泄漏?如何检测它们?程序员可以采取哪些预防措施来避免它们?

最佳答案

您可能会得到很多答案,这就是我在尝试做一些“现实世界”应用程序时遇到的答案。我使用多线程和一些 MVar 来传递数据(MVar 类似于锁定的共享内存)。我的典型模式是:

a <- takeMVar mvar
putMVar mvar (a + 1)

然后,有时,当适当的情况发生时,我会这样做:

a <- takeMVar mvar
when (a > 10) ....

问题在于 mvar 的内容本质上是 (0 + 1 + 1 + 1 + ....)...对于像 100k 这样的数字来说相当密集...这种类型的问题在我的计算机中相当普遍代码;不幸的是,对于多线程应用程序来说,很容易遇到此类问题。

检测...我所做的是以生成有关内存消耗的数据的模式启动 haskell,启动和停止不同的线程并查看内存占用是否稳定...

Anotomy of a thunk leak (with instructions how to debug it)

示例:Thunk memory leak as a result of map function

关于haskell - Haskell 中的空间泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768536/

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