我在将大型数据集加载到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':不是有效的标识符
java -Xms4096m -Xmx4096m [YourAppHere]
此命令将在开始时分配4GB(或4096 MB)堆内存(-Xms4096m选项),并且最大堆内存大小为4GB(-Xmx4096m选项).
显然,您可以将数字更改为您想要的任何大小.如果计算机必须增加内存大小(每次增加内存大小,它会使分配加倍),就会产生开销.所以如果你有那么多内存,你可以在应用程序的开头分配它.
尝试(注释引号不是两个单词的可选)
export JAVA_OPTS="-Xms4096m -Xmx4096m"
甚至
export MIN="4096m" # <-- Those quotes are (one word). export MAX="4096m" export JAVA_OPTS="-Xms$MIN -Xmx$MAX" # <-- single quotes would break variable expansion