如下这段代码是启动GODU的脚本,其中的JAVA_OPTS中的各个参数是什么意思呢?
JAVA_OPTS=" -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Dfile.encoding=GBK" TC_INSTALL_DIR=/opt/godu/terracotta-2.7.2 TC_CONFIG_PATH="\({GODU_HOME}/conf/tc-config.xml" set -- -q . "\)/bin/dso-env.sh" exec "${JAVA_HOME}/bin/java" -Dservice_name=godu1.2.1 ${TC_JAVA_OPTS} \ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8400 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false \ -Djava.awt.Window.locationByPlatform=true \ ${JAVA_OPTS} \ -cp $JARS com.boco.godu.app.AppMain 1234
-Xms512m : 给JVM的堆(Heap)分配初始内存512MB,也是堆内存的下限;
-Xmx1024m : 指定JVM堆内存的上限是1024MB,当这个值偏小时程序可能会出现java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch...捕捉;
-XX:PermSize=128m : 给JVM的永久生存对象(见笔记“JVM的内存管理机制”)分配的初始内存为128MB,也是下限值;
-XX:MaxPermSize=128m : 指定JVM给永久生存对象分配内存的上限是128MB, 当这个值偏小时程序可能会出现java.lang.OutOfMemory:PermGen space错误,同样无法用try...catch...捕捉;