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

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

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

JVM抛出OutOfMemory 的集中情况的解析

1、java堆的内存泄露和内存溢出 内存泄露:一个生命周期长的对象引用一个生命周期短的对象,当生命周期短的对象不再被使用时,不能被GC进行回收。 内存溢出:对象的生命周期长,一直占用内存,新的对象...
  • u011955252
  • u011955252
  • 2015年10月31日 09:58
  • 340

poi解决内存消耗过大溢出问题

poi是一个excel的文件的解析引擎,我目前接触到的就两种文件格式xsl,xlsx,xsl是早先版本的excel文件格式,xlsx是后期版本的规范 poi解析引擎的解析速度是非常快的,一般2000条...
  • wujiang88
  • wujiang88
  • 2016年03月06日 23:20
  • 3473

关于GDI+产生OutOfMemory问题及GDI+用法概要

最近学校作业要处理图片,本来
  • wenzishou
  • wenzishou
  • 2014年05月18日 13:10
  • 1477

JAVA内存区域--OOM(outofmemory)异常

堆溢出异常堆栈信息:java.lang.OutOfMemoryError: Java heap space。 JVM配置:gc -Xms10M -Xmx10M -Xmn7M -Xss1M -XX:+P...
  • u010711294
  • u010711294
  • 2017年02月09日 18:27
  • 104

关于c# 在vs2013 x86平台上开辟大内存

x86平台由于其寻址空间为2^32=4GB,所以在x86平台上的程序最大只能占4GB。vs2013将x86程序限制在2GB的安全范围内,但有时候我们需要开发>2GB的程序,如何突破这个限制呢? 在v...
  • wangtong95
  • wangtong95
  • 2015年08月18日 14:53
  • 2290

使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)

做过应用诊断与优化的朋友都知道内存泄漏和带来的危害,对这种情况的分析和定位一般会比较困难,尤其在 .NET/Java 应用中,隐式的堆内存管理以及托管对象间纷繁复杂的引用关系,使分析和定位问题更加复杂...
  • formiss
  • formiss
  • 2013年01月16日 10:51
  • 2383

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

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

Fork/Join框架介绍 顺便测试jvm的内存溢出问题

1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再...
  • zhengchao1991
  • zhengchao1991
  • 2016年11月15日 11:37
  • 692

创建ExecutorService并行处理任务,导致内存不足

利用ExecutorService创建的线程池并行地处理任务,可以节省总的等待时间(总等待时间等于耗时最多的那个任务的耗时)。不过线程池不会被自动地释放。所以要么创建一次线程池之后重复地使用,要么每次...
  • ClementAD
  • ClementAD
  • 2017年07月21日 16:47
  • 813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net的Outofmemory异常及大内存使用
举报原因:
原因补充:

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