首页 新闻 赞助 找找看

.net outofmemory xp 480M内存

0
悬赏园豆:100 [待解决问题]

在网上得知,一个.net应用程序最多可以使用2GB内存,但是我的只有480M。还有说在boot.ini中设置为3GB,那是对有4GB物理内存的PC机,对我只有480M的机器不知如何,是否会有反作用。

我的程序占用一百多兆内存,程序经常弹出OutofMemory异常,导致程序Crash。但当时程序使用内存也就一百多兆,操作系统提交内存也四百多兆,我也设置了虚拟内存2GB。

求高手的解决方案。

chismxna的主页 chismxna | 初学一级 | 园豆:95
提问于:2010-09-07 10:19
< >
分享
所有回答(3)
0

查看下程序日志文件、检查下程序是否陷入死循环。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-07 10:49
检查过了,这些都没有问题
支持(0) 反对(0) chismxna | 园豆:95 (初学一级) | 2010-09-07 13:55
0

如果可以的话,请把程序法给我帮你看看.

 

或者,自己通过使用windbg 看一下

孤剑 | 园豆:328 (菜鸟二级) | 2010-09-07 13:14
0

.net 程序在32为XP下无法用到2GB内存,一般就是1.6GB左右,视系统内存占用情况而定,如果系统可以用的物理内存很少,则很容易出现outofmemory 异常,这是因为GC需要保留一部分物理内存(大概400M左右)用于垃圾回收,这部分内存可能并没有被占用,但被预留了,你系统只有480M物理内存,已经用了100M,那确实很容易出现outofmemroy异常。你用 .net 4.0 试试看,.net 4.0 GC 做了改进了,如果还是不行,那只能放弃.net 了,用 C++ 写吧。

eaglet | 园豆:17139 (专家六级) | 2010-09-07 14:05
.net 4.0 在GC做了哪些改进呢?
支持(0) 反对(0) chismxna | 园豆:95 (初学一级) | 2010-09-08 16:19
算法上做了改进
支持(0) 反对(0) eaglet | 园豆:17139 (专家六级) | 2010-09-09 07:56
昨天看了微软关于 .net 4.0中GC的使用。发现讲的那几个函数在.net 2.0中就有了,只是我没有用过。今天加上去了,再测试看看。
支持(0) 反对(0) chismxna | 园豆:95 (初学一级) | 2010-09-09 13:51
不是函数,是内存的管理算法优化了。外部表现是一样的。
支持(0) 反对(0) eaglet | 园豆:17139 (专家六级) | 2010-09-09 18:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册