max*_*dbe 19 c# memory-management runtime
我有一个应用程序,在运行时,需要轮询自己的内存使用情况.如果它可以列出实例化的每个对象的内存使用情况,那将是理想的.我知道这可以通过WMI实现,但我希望有一些不依赖于WMI的东西.
Jim*_*hel 29
您可能会发现两个有用的功能:
GC.GetTotalMemory();
Process.PagedMemorySize64();
Run Code Online (Sandbox Code Playgroud)
我的经验是GC.GetTotalMemory()并不十分可靠.它通常报告的内存使用量远远小于实际内存使用量.我已经看到它报告说当我的程序在16 GB的机器上耗尽时,我只使用8 GB.
我还没有测试过Process.PagedMemorySize64,虽然看起来很有前景.
小智 6
Process proc = Process.GetCurrentProcess();
Logger.Info(proc.PeakWorkingSet64/1024 + "kb");
Run Code Online (Sandbox Code Playgroud)