问题描述
我最近在写推荐系统的协同过滤方面的程序,由于数据集太大了,要占很大的内存,自己的电脑不够用,就找了台有8G内存的服务器跑。但是代码转过去后,还是不行。我用的myeclipse,设置了myselipse的内存分配为3000m结果就报错ErroroccurredduringinitializationofVMCouldnotreserveenoughspaceforobjectheap可是服务器用足够的内存可以分配啊,当然我不懂java这种内存分配的上限是多少,在网上查到上限好像只是物理内存的1/4,是这样吗?有没有强行分配的方法?
解决方案
解决方案二:
http://blog.csdn.net/magister_feng/article/details/6772330http://www.cnblogs.com/guolei/archive/2012/04/20/2459542.html
解决方案三:
引用1楼flagiris的回复:
http://blog.csdn.net/magister_feng/article/details/6772330http://www.cnblogs.com/guolei/archive/2012/04/20/2459542.html
好累,感觉不会再爱了。估计上限就是2G,加不了了,害我忙活了好久。。。。。
解决方案四:
毕竟分配的内存是无上限的,今天1个G,明天就可能要10G了,满足不了的。还是整理下代码,看看哪边的程序可以优化下。
解决方案五:
32位的机器都话,只能分两鸡,要想用再加大,就必须用64位机器。另外可以用jconsole查看一下内存
解决方案六:
楼主,你的机器如果是win7的话,那么在系统属性里面看到最多只能用到2.7G,连3.5G都没法用,所以建议楼主装64位的系统,或者把myeclipse的内存改小一点
解决方案七:
我觉得这种东西,可以考虑按“段”处理,即使现在的内存够用的话,随着数据不断增加,总会有不够用那天。
解决方案八:
过了一年了,我也遇到同样的问题,问题解决不了接下去的工作也做不了了
解决方案九:
楼主用的32位的jdk吧?32位的jdk最多支持不到2g,换成64位的jdk吧,整个二三十G不成问题的。