2012-11-13 55 views
0

我有一個內存密集的C#4.0圖形程序,必須在Windows XP上運行,因此經常會出現內存不足的情況。爲我的過程估算可用物理內存的最佳方式是什麼?當物理內存降到250 MB以下時,我想停止分配緩衝區。需要看看有多少物理內存可用於當前進程

+0

也可能與:[C#內存使用率(HTTP:// stackoverflow.com/questions/3803003/c-sharp-memory-usage) –

+0

考慮如果您的操作系統已將自己設置爲100 MB可用內存的目標,會發生什麼情況。你會一直放棄你的緩存。我發現在您的應用程序上配置自我強制的內存使用限制更有用。 – 2012-11-13 22:09:06

回答

2

您可以使用性能比較計數器,例如:

private PerformanceCounter memoryCounter = 
     new PerformanceCounter("Memory", "Available MBytes"); 

// ... 
float mb = this.memoryCounter.NextValue(); 
float available = (mb * 1024 * 1024) - Process.GetCurrentProcess().PrivateMemorySize64; 
Console.Write("RAM: {0} MB" 
    , (1.0 * available/1024/1024).ToString("0.##")); 

看一看這個答案更多的信息:https://stackoverflow.com/a/4680030/284240

相關問題