【发布时间】:2016-02-01 15:51:14
【问题描述】:
这是我获得总内存和已用内存的方式:
PerformanceCounter ramAvailableCounter = new PerformanceCounter("Memory", "Available MBytes");
var ramUsedMB = ramAvailableCounter.NextValue();
var ramTotalMB = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory / 1024 / 1024;
var ramPercentageLeft = (ramUsedMB * 100) / ramTotalMB;
但是我怎样才能得到下图所示的“已提交”内存呢?
不幸的是,当只有大约 15GB 可用空间时,我们使用的应用程序会引发异常,我想在足够接近时发送通知。
【问题讨论】:
-
当有 15 GB 可用内存时,为什么 anything 会抛出异常?即使抛开虚拟内存的现实,这也完全没有意义。发生错误时的例外情况。即使对于要求最苛刻的应用程序,15 GB 也不是严重的内存不足错误。无论如何,你不会通过试图猜测它来击败一个设计糟糕的应用程序。只需抓住这个愚蠢的异常并处理它。
-
@CodyGray 谢谢...这是处理数亿条记录的 BI 应用程序。所以 15GB 是不够的,它实际上使用大约 45GB 来执行完全重新加载;)
标签: c# .net memory-management ram