java 如何给JVM强行分配大的内存

问题描述

我最近在写推荐系统的协同过滤方面的程序,由于数据集太大了,要占很大的内存,自己的电脑不够用,就找了台有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不成问题的。

时间: 2024-08-03 17:36:48

java 如何给JVM强行分配大的内存的相关文章

[jjzhu学java]之深入理解JVM之垃圾收集器与内存分配策略

深入理解JVM之垃圾收集器与内存分配策略 如何判断对象已经消亡 引用计数算法 根搜索算法 引用 深入理解JVM之垃圾收集器与内存分配策略 java中对象的创建需要的内存都是在java堆中申请的,所以垃圾收集的区域就是对java堆和方法区的内存区域进行GC. 如何判断对象已经消亡 垃圾收集器的主要任务就是找出已经"消亡"的对象,将其标记并清除其说用内存的过程,如何判断某个对象已经"消亡",不同的虚拟机有不同的判断策略 引用计数算法 引用计数(Reference Cou

Android 优化二 Java内存分配机制及内存泄漏

Java内存分配机制及内存泄漏目录介绍 1.JVM内存管理 1.1 JVM内存管理图 1.2 Java采用GC进行内存管理. 2.JVM内存分配的几种策略 2.1 静态的 2.2 栈式的 2.3 堆式的 2.4 堆和栈的区别 2.5 得出结论 2.6 举个例子 2.7 调用 System.gc();进行内存回收 3.GC简单介绍 3.1 内存垃圾回收机制 3.2 关于GC介绍 3.3 如何监听GC过程 3.4 GC过程与对象的引用类型关系 4.内存泄漏简单介绍 4.1 内存泄漏的定义 4.2 内

数据-java实现金额近似平均分配

问题描述 java实现金额近似平均分配 目前有个需求,有一批不同金额的数据,需要按金额分配给系统内的用户,比如 数据1:3000,数据2:2000,数据3:4900,那么分配给2个用户的话,肯定是A用户分配数据1跟数据2,B用户分配数据3,这样才能做到近似的金额平均.请问用java怎么实现此算法,或者用sql也可以,拜托各位大神了 解决方案 http://blog.csdn.net/xjbzju/article/details/7422181 解决方案二: 定义一个平均的算法被. 解决方案三:

Java虚拟机的JVM垃圾回收机制

1.JVM内存空间     JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured)  分区作用:  新创建的对象通常先将其分配在新生代中,在新生代中经过若干次GC之后仍未释放的对象,再将它移动到旧生代.为了让内存回收更高效(GC会暂停JVM中的应用),Sun JDK在1.2开始对堆采用了分代管理的方式.在分配对象遇到内存不足时,先对新生代进行GC(Young GC):当新生代GC之后仍无法满足内存空间分配需求时, 才会对整个堆空间以及方法区进行GC (Full GC) 

[jjzhu学java]深入理解JVM笔记之内存管理机制

深入理解JVM笔记之内存管理机制 运行时数据区域 程序计数器 JVM栈 本地方法栈 Java堆 方法区 运行时常量池 直接内存 对象访问 OutOfMemoryError异常 Java堆溢出示例 JVM栈和本地方法栈溢出 运行时常量池溢出 本机直接内存溢出 深入理解JVM笔记之内存管理机制 运行时数据区域 程序计数器 每个线程都有一个程序计数器(PC),是当前线程所执行的字节码的行号指示器,通过改变程序计数器的值来选取下一条指令.各线程之间的计数器互不影响,是线程私有的内存. 如果线程执行的是一

jdk-想写个java编译器和jvm

问题描述 想写个java编译器和jvm 最近有想法自己动手写个java编译器和jvm,类似jdk自带javac和java的功能,但网上这方面的资料比较少,自己也刚接触java不久,跪求大神指导,是否有这方面的资料和书籍可以借鉴! 解决方案 可参考一些编译原理的书籍,这个事情比较考验"内功",祝成功.http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00T9IXLCIhttp://www.amazon.cn/gp/product/B00GAUNDYY

notepad++ eclipse-我是java新手,请哪位大神解答。

问题描述 我是java新手,请哪位大神解答. 一个是用notepad写的,第二个是用eclipse SE写的.为什么用eclipse SE写的用StringBuffer接收int数组元素就报错??用notepad就不会.运行环境1.7,编译器也是1.7.但是我用EE它又没事了.请问我的eclipse SE哪里配置错了吗?? 解决方案 你上传的这第二张图片看不清,能重新发一张或者发代码么. 解决方案二: 因为你有不同版本的eclipse,里面的jre不同,把jre对应上就行了,尤其是用到strin

初学者对于java继承、多态,子类对象的内存分配的一些问题,百度了好多,但感觉没有系统的,在此提问,希望前辈们传到授业解惑

问题描述 由于是初学者,所以有些表述可能有误,都只是自己的一些理解.我是纯初学者,看过两个星期的C++,之前也学过C.感觉看C++的时候,更容易去理解C++中的面向对象技术的实现,但看JAVA的时候,可能隔着一层虚拟机,有些实现很难理解.第一个问题:我了解到一个对象里面,隐含了一个引用this,可以用this来特别地引用本对象的成员或者函数,然后还有一个super关键字,书上说这个关键字不是一个引用,但怎么看都感觉这个super是一个指向本对象的父类类型的引用.我想问这个super到底是什么,如

关于java重写paint方法,求大神帮忙

问题描述 关于java重写paint方法,求大神帮忙 我能理解第一段模版函数,然后通过继承和重写方法,代入,为什么第二段代码,不需要带入父类方法,自己就跑起来了了,好像只要把paint重写了,系统自动跑, 还有中间通过屏幕监听的控制关闭的代码看不懂,为什么要这样写,老师说是匿名内部类,求大神讲解 解决方案 4444LJKHJHJHK'HJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJ 解决方案二: 问题1:重新pa