如何使用命令行为JAVA分配空间

Ali*_*ett 2 java

我在将大型数据集加载到Jena时遇到了堆错误.`有没有办法可以为JVM(Java)分配一个大的堆空间.

我知道我可以通过更改eclipse.ini来实现这一点.但是在某种程度上我可以使用linux中的命令行来增加Java堆大小(我使用64GB RAM服务器:运行12.04 Ubuntu LTS服务器)?

由于堆空间较少而导致的错误是:超出了线程主gc开销限制的异常.

另外,我如何找到可以为系统设置的最大堆空间量

我尝试导出JAVA_OPTS = -Xms4096m -Xmx4096m,但最终得到错误:bash:export:-Xms4096m': not a valid identifier bash: export:-Xmx4096m':不是有效的标识符

Ell*_*sch 6

尝试(注释引号不是两个单词的可选)

export JAVA_OPTS="-Xms4096m -Xmx4096m"
Run Code Online (Sandbox Code Playgroud)

甚至

export MIN="4096m" # <-- Those quotes are (one word).
export MAX="4096m"
export JAVA_OPTS="-Xms$MIN -Xmx$MAX" # <-- single quotes would break variable expansion
Run Code Online (Sandbox Code Playgroud)


oco*_*ecp 5

java -Xms4096m -Xmx4096m [YourAppHere]
Run Code Online (Sandbox Code Playgroud)

此命令将在开始时分配4GB(或4096 MB)堆内存(-Xms4096m选项),并且最大堆内存大小为4GB(-Xmx4096m选项).

显然,您可以将数字更改为您想要的任何大小.如果计算机必须增加内存大小(每次增加内存大小,它会使分配加倍),就会产生开销.所以如果你有那么多内存,你可以在应用程序的开头分配它.