【发布时间】:2013-03-09 01:08:22
【问题描述】:
我的应用程序的OutOfMemoryException 在系统本身内存不足之前就被抛出了,如下所示:
MSDN Blogs - Out of memory? Easy ways to increase the memory available to your program.
当你运行你的 C# 应用程序时,你可能会抛出一个
OutOfMemoryException,即使你的机器有很多内存。 [...] 4 Gigs 分为两半:用户应用程序获得下半部分,操作系统获得上半部分。 (此边界可以更改:见下文)。
根据要求,我需要可视化我的应用程序可用的内存量以及当前的使用情况。可以使用Process.GetCurrentProcess(); 和其他方法检索当前使用情况,但是如何确定我的应用程序在运行时可用的内存?我就是想不通。
【问题讨论】:
-
默认情况下,单个进程可以占用自己的最大内存量,我很确定它在 Windows 上是 1GB。当然你可以使用更多,但我无法帮助你如何做到这一点。
-
没有地址空间在 x86 上是 2GB
-
无论如何,如果您的应用程序是 32 位,那么您将受到很大限制。
-
发布您的代码,如果您愿意,人们可以帮助您优化它
标签: c# .net memory-management out-of-memory