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

ff8*_*nia 4 .net c# garbage-collection memory-management

我面对的是一种非常奇怪的行为.使用这个虚拟代码:

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

        while ( true )
        {
            i++;

            String giro = "iteration " + i;

            Console.WriteLine(giro);

            Thread.Sleep(40);
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用perfom私有字节正在增加.

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

这怎么可能?

我以为GC负责这些事情.

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

在此输入图像描述

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

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

谢谢!

Jon*_*eet 9

你正在创建一堆字符串.GC还不适合收集它们.最终记忆图将稳定下来.GC工作正常 - 这里没有问题:)