有没有办法可以在C#应用程序中监视内存消耗?我想根据程序使用的内存量动态更改变量。
我有一些代码完成对数据库的查询,并在将数据写入文件之前暂时保存这些数据。我还有一些代码,允许用户手动更改数据从内存中转储到哪个点并写入文件,但我希望程序自动处理。
例如;如果我的进程达到700,000K内存使用量(如从Task Manager
查看,则递减整数并继续处理。
谢谢, 埃里克
答案 0 :(得分:8)
您可以通过这种方式获取当前的内存使用情况:
var proc = System.Diagnostics.Process.GetCurrentProcess();
var mbUsed = (proc.PrivateMemorySize64/1024)/1024;
PrivateMemorySize64是一个长整数,表示以字节为单位的内存量。
答案 1 :(得分:0)
您可以搜索PerformanceCounter类。
答案 2 :(得分:0)
为什么不在所有堆上使用性能计数器和监视虚拟字节或字节,或者使用Process类和VirtualMemorySize64