在网上得知,一个.net应用程序最多可以使用2GB内存,但是我的只有480M。还有说在boot.ini中设置为3GB,那是对有4GB物理内存的PC机,对我只有480M的机器不知如何,是否会有反作用。
我的程序占用一百多兆内存,程序经常弹出OutofMemory异常,导致程序Crash。但当时程序使用内存也就一百多兆,操作系统提交内存也四百多兆,我也设置了虚拟内存2GB。
求高手的解决方案。
查看下程序日志文件、检查下程序是否陷入死循环。
如果可以的话,请把程序法给我帮你看看.
或者,自己通过使用windbg 看一下
.net 程序在32为XP下无法用到2GB内存,一般就是1.6GB左右,视系统内存占用情况而定,如果系统可以用的物理内存很少,则很容易出现outofmemory 异常,这是因为GC需要保留一部分物理内存(大概400M左右)用于垃圾回收,这部分内存可能并没有被占用,但被预留了,你系统只有480M物理内存,已经用了100M,那确实很容易出现outofmemroy异常。你用 .net 4.0 试试看,.net 4.0 GC 做了改进了,如果还是不行,那只能放弃.net 了,用 C++ 写吧。