.Net的Outofmemory异常及大内存使用

原创 2004年07月06日 16:24:00

        从去年起我们的服务器偶尔会抛出OutOfMemoryException,即没有足够的内存继续执行程序时引发的异常。服务器内存加到4G也仍会出现该问题。软件是UO的第三方模拟器。事实上,从任务管理器里,可以看到软件占用了约1G左右的内存,当然因为GC的缘故,实际软件使用的内存在600M左右。为避免超过1G多内存的占用,并抛出Outofmemory异常,设定在内存占用到一定值时进行强制GC,一下子可以减去几百兆,但终究是没彻底解决问题。
        最近国外论坛贴了相关处理方法,在此转述一遍,希望对遇到类似问题的朋友有帮助。


对于2G内存的服务器,.Net只能使用1.2G内存。
对于4G内存的服务器,.Net可使用2.4G内存。但系统需要进行如下设置:
1、 在boot.ini文件中增加/3GB的开关。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)/WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)/WINNT="????" /3GB
2、在命令行窗口,进入该目录,如 cd "C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin"
3、运行link命令: link -edit -LARGEADDRESSAWARE server.exe  (server.exe为你的.Net程序)
4、你的server.exe就可以使用到2.4G内存了


.Net 1.2好像没解决这个问题,新的2.0还没空做测试,不知道2.0在内存管理和GC的性能上有无大的变化。

.Net的Outofmemory异常及大内存使用

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 08:53
  • 104

paip.提升性能---C#.NET程序内存占用过多以及OutOfMemory解决方法

paip.提升性能---C#.NET程序内存占用过多以及OutOfMemory解决方法 作者Attilax ,  EMAIL:1466519819@qq.com  需要的效...
  • attilax
  • attilax
  • 2013年04月22日 22:21
  • 5204

移花接木解决.net程序内存占用过大

SetProcessWorkingSetSize减少内存占用
  • liuyunfan
  • liuyunfan
  • 2010年12月18日 13:21
  • 975

.Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结

在什么情况下会出现OutOfMemonryException呢? 在我们试图新建一个对象时,而垃圾收集器又找不到任何可用内存时被抛出,这种情况下我们是可以捕获该异常的; 另一种情况是,CLR需要内存时...
  • num197
  • num197
  • 2015年06月01日 18:27
  • 601

编写各种outofmemory/stackoverflow程序

最近在网上看到一片文章Java工程师成神之路,对其中的 1.1.5. 自己编写各种outofmemory,stackoverflow程序 HeapOutOfMemory Young OutOfM...
  • junranhuigu
  • junranhuigu
  • 2016年02月02日 18:03
  • 1410

改善.NET大内存对象的管理

Asdocumented elsewhere, .NET memory management consists of two heaps: the SmallObject Heap (SOH) for...
  • afandaafandaafanda
  • afandaafandaafanda
  • 2015年04月12日 15:19
  • 746

HttpWebRequest内存溢出 OutOfMemoryException

当使用多线程调用HttpWebRequest时出现OutOfMemoryException错误 查询MSDN,其中GetResponse()方法,有如下一条警告,猜想HttpWebRespons...
  • feixuedongji
  • feixuedongji
  • 2015年06月01日 10:57
  • 660

kettle内存溢出

ETL工具kettle,在老版设计后,使用新版时,居然发生了内存溢出的错误: 出现: java heap  或者 OutOfMemory等字样  这是kettle分配的内存不足。 在kett...
  • longshenlmj
  • longshenlmj
  • 2013年12月19日 20:11
  • 2736

.Net内存泄露原因及解决办法

1.    什么是.Net内存泄露 (1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈、非托管堆和托管堆。这里我们需要简单回顾一下。 以运行库...
  • changtianshuiyue
  • changtianshuiyue
  • 2016年09月13日 22:27
  • 2107

java内存溢出异常(OutOfMemoryError)和栈溢出异常(StackOverflowError)

在Java虚拟机规范中描述了两种异常: 定义: 如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛...
  • hou314159
  • hou314159
  • 2017年03月01日 15:30
  • 3839
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net的Outofmemory异常及大内存使用
举报原因:
原因补充:

(最多只允许输入30个字)