2012-06-05 22 views
1

某个时候,我可以创建一个10000x10000位,有时我不能是否有可能在创建巨大的位图之前判断是否有足够的可用内存?

取决于有多少可用的物理内存是免费

我想知道是否有办法弄清楚之前,过程中如果开始有足够的内存或不

+0

你不清单任何特定的操作系统,但是你可能正在使用虚拟内存运行。只是检查即时空闲的物理内存并不意味着太多。大量的数据可以用作缓存并可按需使用。额外的内存可以通过超越其他进程来提供。 – HABO

回答

1

您可以使用它来获取当前进程:

Process proc = Process.GetCurrentProcess(); 

然后用它来获取私有内存使用:

proc.PrivateMemorySize64; 

你也可以做到这一点(使用System.Diagnostics.PerformaceCounter):

protected PerformanceCounter ramCounter; 
ramCounter = new PerformanceCounter("Memory", "Available MBytes"); 
var freeRAMInMB = ramCounter.NextValue(); 

以上将获得在MB可用内存的量...

相关问题