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