首页新闻找找看学习计划

急【内存溢出】大神请进

0
[待解决问题]

 

这个string 型的字段,赋值过长后报 引发类型为“System.OutOfMemoryException”的异常
大神们内存溢出的原因是什么,没有积分了,以后努力多赚积分,多谢了

卢格的主页 卢格 | 初学一级 | 园豆:5
提问于:2017-07-13 18:38
< >
分享
所有回答(5)
0

内存溢出的意思就是:内存不够了

解决方法就是:加内存.这样就够了.

吴瑞祥 | 园豆:28745 (高人七级) | 2017-07-13 20:32

16G的内存,绝对是够的

支持(0) 反对(0) 卢格 | 园豆:5 (初学一级) | 2017-07-14 10:24

@卢格: 够不够你说了不算.程序说了算.

系统告诉你不够.那就是不够!

给你举个例子:你登录博客园的时候.博客园告诉你密码错误.那就是你输入的密码错了!明白吗?就算你觉得你的密码是对的.就算你在怎么肯定你的密码没错.也没有任何意义.

系统说你错.你就是错!系统说你内存不够.你内存就是不够!

支持(0) 反对(0) 吴瑞祥 | 园豆:28745 (高人七级) | 2017-07-14 10:32
0

循环2百万次,这是科学计算吗?代码好神奇啊...无力吐槽...

爱编程的大叔 | 园豆:30089 (高人七级) | 2017-07-14 09:40

这个只是我从程序中分离出来用于测试的,

medalList  并没有报内存溢出,内存溢出的地方在 string test 循环赋值上 ,如果将 string test 更改为 List<string> test  循环赋值不会出错,但如果再将List<string> test 赋值给另一个模型 ,运行一会又会报内存溢出   ,test的赋值并没有无限累加,每次都是重新赋值,那原因究竟出在那了

支持(0) 反对(0) 卢格 | 园豆:5 (初学一级) | 2017-07-14 10:37

@卢格: 搞不懂了,你既然听不进别人讲啥,问问题有啥用呢?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30089 (高人七级) | 2017-07-14 10:50
0

不是test 的string过长,是循环次数太多了,list超过内存。 

庸斋杂记 | 园豆:575 (小虾三级) | 2017-07-14 09:53
0

真是无力吐槽了

200万次循环,每次循环使test增加了31个字符。

自己算:如果这个程序能顺利跑完,那么test里得有多少个字符。

 

西漠以西 | 园豆:1670 (小虾三级) | 2017-07-14 10:00

每个循环都重新赋值,并不是累加,循环中并没有使用+= 

支持(0) 反对(0) 卢格 | 园豆:5 (初学一级) | 2017-07-14 10:24

@卢格: list.add(model) 这么大的字你都看不见,也是醉了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30089 (高人七级) | 2017-07-14 10:45

@爱编程的大叔: medalList  并没有报内存溢出,内存溢出的地方在 string test 循环赋值上 ,如果将 string test 更改为 List<string> test  循环赋值不会出错,但如果再将List<string> test 赋值给另一个模型 ,运行一会又会报内存溢出 

支持(0) 反对(0) 卢格 | 园豆:5 (初学一级) | 2017-07-14 10:46

@爱编程的大叔: medalList  并没有报内存溢出,内存溢出的地方在 string test 循环赋值上 ,如果将 string test 更改为 List<string> test  循环赋值不会出错,但如果再将List<string> test 赋值给另一个模型 ,运行一会又会报内存溢出 

支持(0) 反对(0) 卢格 | 园豆:5 (初学一级) | 2017-07-14 10:47
0

OutOfMemory:  Java heap space

发生这种问题的原因是突然创建了太多的对象,虚拟机分配的堆内存空间已经用满了

吉吉的城 | 园豆:553 (小虾三级) | 2017-07-15 00:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册