我正在寻找长期服务中的一些内存泄漏(使用F#)。 到目前为止,我见过的唯一“奇怪”的事情如下:
我在代码中看不到任何这种行为的原因(您可以在每个邮箱示例中找到标准代码 - 只有一个包含let! = receive
和match
的循环结束于一个return! loop()
有没有人见过这种行为,甚至知道如何处理这种行为? 或者这甚至是一个(已知的)错误?
更新:数组的增长真的很奇怪 - 似乎附加了额外的空间而没有正确使用:
答案 0 :(得分:2)
我不是任何方式的F#专家,但也许你可以看看这个帖子中的第一个答案:
Does Async.StartChild have a memory leak?
第一个回复在下一页提到了内存分析教程:
但是他们提到了F#的开源版本
我不确定它是你在寻找什么(关于F#的这个开源版本在最后一点),但也许它可以帮助你找到泄漏的来源或证明它实际上泄漏了内存
希望有所帮助?
贝
答案 1 :(得分:-5)
.NET有自己的垃圾收集器,它运行得非常好。 在.NET技术中导致内存泄漏的最常见方法是设置委托,而不是在对象解构器上删除它们。