.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的性能上有无大的变化。

ASP.net 内存不足(OutOfMemory)的调试分析

32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用)。 如果进程运行中...
  • lzqinfen
  • lzqinfen
  • 2014-08-15 11:16:49
  • 1317

JVM 各种OutOfMemory异常及设置

1.-Xms堆最小容量 -Xmx堆最大得容量,一般都设置成一样的 java -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError HeapOOM im...
  • gaochao1995
  • gaochao1995
  • 2014-08-18 17:00:57
  • 403

c# 处理大批量数据 时遇到 类型为“System.OutOfMemoryException”的异常

因为业务需要在给客户处理多张表中均存在100W以上数据的时候出现如题错误 原因是在将数据装入DataTable中时所占用内存太大导致 在网上查了下原因后是因为32位软件所能使用的内存有限,本想将软件移...
  • bosstwobread
  • bosstwobread
  • 2013-11-15 17:53:17
  • 3104

【深入理解JVM】:OutOfMemoryError异常总结

JVM内存区域中,除了程序计数器外,其他几个运行时区域都有可能发生OutOfMemoryError(OOM)异常。本文对OOM异常进行总结,通过代码验证JVM规范中描述的运行时区域存储的内容;了解可能...
  • u011080472
  • u011080472
  • 2016-05-05 13:21:56
  • 5114

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

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

编写各种outofmemory/stackoverflow程序

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

[深入理解Java虚拟机]第二章 实战 :OutOfMemoryError异常

在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称00M )异常的可能,本节将通过若干实例来验证异常发生的场景(代码清单2-...
  • qilixiang012
  • qilixiang012
  • 2015-10-04 21:49:01
  • 967

Android大图加载内存优化(如何防止OutOfMemory)

第三方图片加载核心技术揭秘:揭秘ImagLoader或者Picasso等第三方开源库的核心:加载原理和缓存原理。...
  • CJ_star
  • CJ_star
  • 2015-08-21 15:47:30
  • 2484

Weka加载大数据量内存不足的解决办法

150M的训练集用WEKA做起来应该比较困难有这么几个办法: 1 增加内存。 其实WEKA不光可以用物理内存,还可以占用虚拟内存。把JAVA的可用内存设置成2G的话,如果机器的物理内存只有1G,操...
  • tangtang5156
  • tangtang5156
  • 2014-09-25 08:47:04
  • 1801

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

Asdocumented elsewhere, .NET memory management consists of two heaps: the SmallObject Heap (SOH) for...
  • afandaafandaafanda
  • afandaafandaafanda
  • 2015-04-12 15:19:51
  • 796
收藏助手
不良信息举报
您举报文章:.Net的Outofmemory异常及大内存使用
举报原因:
原因补充:

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