gpt4 book ai didi

c# - 为什么单个循环会导致内存泄漏?

转载 作者:太空狗 更新时间:2023-10-30 00:03:25 24 4
gpt4 key购买 nike

我正面临着一种非常奇怪的行为。使用此虚拟代码:

 static void Main( string[] args )
{
int i = 0;

while ( true )
{
i++;

String giro = "iteration " + i;

Console.WriteLine(giro);

Thread.Sleep(40);
}
}

使用 perfom 私有(private)字节正在增加。

img http://dl.dropbox.com/u/2478017/memory.gif

这怎么可能?

我以为 GC 会处理这些事情。

此外,如果我将此版本的内存行为与每 10 次迭代强制执行 GC 收集的版本进行比较,结果(对我来说)令人惊讶:

enter image description here

绿色的是没有GC.COllect()的进程,黑色的是另外一个。

你能帮我理解这个问题吗?

谢谢!

最佳答案

您正在创建一堆字符串。 GC 认为还不适合收集它们。最终内存图将趋于平稳。 GC 工作正常 - 这里没有问题:)

关于c# - 为什么单个循环会导致内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887143/

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