我正在使用Windows Vista和Visual Studio 2010.我创建了一个Windows窗体应用程序,在默认窗体上放置一个文本框和一个进度条,在按钮单击事件处理程序中添加progressBar1.Value = 10;
。
我开始调试应用程序的内存使用量是5400k,如任务管理器报告的那样,并且它按预期稳定。我点击按钮,进度条值变为10,应用程序的内存使用量在大约4分半钟内增长到8700k,然后保持稳定。
有人对此有解释吗?并不是因为它看起来很关键或者它最终保持稳定,但这很奇怪而且我很好奇。
我注意到在使用快速移动进度条的应用程序中调查内存使用率高达300 MB时没有明显原因。
编辑:
我还在调查第二起案件。但我说的第一个案例是一个简单的表格,只有一个进度条和一个按钮。这是来源:
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Value = 10;
}
答案 0 :(得分:1)
.Net运行时将为应用程序保留内存,即使它不使用它。内存似乎正在使用中,但如果系统的可用内存开始变低,则会释放内存。
您的申请可能就是这种情况。运行时保留内存而不使用它。
答案 1 :(得分:1)
启动perf-mon并查看.NET内存代码 - 所有堆中的字节数,每代中的字节数,集合数等。如果这样稳定,那就没问题了。
答案 2 :(得分:0)
你指的是什么内存使用?虚拟集没有任何意义 - 仅仅是堆在重复的垃圾收集运行中变得碎片化。
另外,测试的源代码在哪里?现在,我能想到的是:它必须在你自己的代码中的其他地方:)
答案 3 :(得分:0)
可能是在调试时,Visual Studio占用的内存不是您的应用程序。 尝试在发布模式(而不是通过Visual Studio)IDE中运行应用程序并检查内存