C#应用程序,监视内存消耗

时间:2013-07-18 18:15:55

标签: c# winforms memory memory-management

有没有办法可以在C#应用程序中监视内存消耗?我想根据程序使用的内存量动态更改变量。

我有一些代码完成对数据库的查询,并在将数据写入文件之前暂时保存这些数据。我还有一些代码,允许用户手动更改数据从内存中转储到哪个点并写入文件,但我希望程序自动处理。

例如;如果我的进程达到700,000K内存使用量(如从Task Manager查看,则递减整数并继续处理。

谢谢, 埃里克

3 个答案:

答案 0 :(得分:8)

您可以通过这种方式获取当前的内存使用情况:

var proc = System.Diagnostics.Process.GetCurrentProcess();
var mbUsed = (proc.PrivateMemorySize64/1024)/1024;

PrivateMemorySize64是一个长整数,表示以字节为单位的内存量。

答案 1 :(得分:0)

您可以搜索PerformanceCounter类。

答案 2 :(得分:0)

为什么不在所有堆上使用性能计数器和监视虚拟字节或字节,或者使用Process类和VirtualMemorySize64