每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
当前回答
在CASSANDRA_HOME/bin/cassandra.bat中,您会发现以下配置
REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
-javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^
-Xms**2G**^
-Xmx**2G**^
你可以将2G减少到更小的数字,例如1G或更小,它应该可以工作。
如果你是在unix系统上运行,同样,适当地改变.sh文件。
其他回答
在cassandra bin目录下的cassandra.bat文件中将-Xmx2G替换为-Xms512M或更大的内存。
使用-XX:MaxHeapSize=512m(或任何您需要的大数字)(或-Xmx512m简称)运行JVM
假设您有足够的空闲内存,并且正确地设置了JVM参数,那么您可能会遇到内存碎片的问题。在Windows XP上检查Java最大内存。
假设你的类在包mypackage中叫做Test。像这样运行代码:
java -Xmx1024m mypackage.Test
这将为您的代码保留1024mb的堆空间。如果你想要512 MB,你可以使用:
java -Xmx512m mypackage.Test
在1024m, 512m等单位使用小m
结合-Xmx512M使用-d64确保您运行的是64位虚拟机。在64位的机器上,我以为我运行的是64位的虚拟机,但不是。在安装64位Java之后,-d64选项可以工作,-Xmx允许更大的内存大小。
java -d64 -Xmx512M mypackage.Test