首页 > 编程 > .NET > 正文

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

2024-07-10 12:57:27
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 从去年起我们的服务器偶尔会抛出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的性能上有无大的变化。
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表