确定在抛出OutOfMemoryException之前可以使用的可用内存

时间:2013-03-09 01:08:22

标签: c# .net memory-management out-of-memory

我的应用程序的OutOfMemoryException在系统本身内存不足之前被抛出,如下所述:
MSDN Blogs - Out of memory? Easy ways to increase the memory available to your program.

  

当您运行C#应用程序时,即使您的计算机有大量内存,也可能会引发OutOfMemoryException。 [...] 4 Gigs被分成两半:用户应用程序得到下半部分,OS得到上层。 (这个边界可以改变:见下文)。

根据请求,我需要可视化我的应用程序可用的内存量和当前使用情况。可以使用Process.GetCurrentProcess();和其他人检索当前用法,但是如何在运行时确定应用程序可用的内存?我只是想不通。

1 个答案:

答案 0 :(得分:1)

您可以在进行大量分配之前使用MemoryFailPoint进行检查。这并不是您所要求的,但如果您的故障位于特定的已知大分配点,这至少可以让您在发生分配失败时干净利落地处理分配失败。