空白WinForms应用程序中的内存消耗过多

时间:2014-05-29 18:33:04

标签: c# .net winforms memory

为什么我的Windows窗体应用程序在空白的应用程序中消耗的内存越来越多,甚至没有被用户(我)使用?

您可以使用以下步骤重现:

  1. 打开Visual Studio 2013 Ultimate
  2. New Project> C#> Windows Forms Application> .NET Framework 4.5

  3. PictureBox窗格

  4. Form1添加Toolbox
  5. 右键点击PictureBox,然后选择Choose Image...
  6. 选择Loading Animation GIF文件
  7. 点击 F5
  8. 打开Task Manager并观察内存每秒增加N KB。
  9. 由于显而易见的原因,这让我感到疯狂。我的应用程序从大约<1MB开始,在几分钟内,它达到了大约10MB。再给它几分钟,它再次达到~40MB。它并不止于此。事实上,我让它运行了一夜,当我醒来时,电脑没有响应。

1 个答案:

答案 0 :(得分:0)

GC没有收集未使用的内存,因为它非常小。

您可以尝试强制GC收集(不是一个好的做法,仅用于测试)

public Form1()
    {
        InitializeComponent();
        _timer.Interval = 10000;
        _timer.Tick += _timer_Tick;
        _timer.Start();
    }

    void _timer_Tick(object sender, EventArgs e)
    {
        GC.Collect();
    }

此后内存在我的电脑上保持在3.2 MB:)

相关问题