JAVA_OPTS=-server -Xms6000M -Xmx6000M -Xss1024k -Xmn2250M -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=1024M -XX:MaxPermSize=6000M -XX:+DisableExplicitGC -XX:SurvivorRatio=65536 -XX:MaxTenuringThreshold=0 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true
-Xms:最小使用物理内存
-Xmx:不能超过物理内存的大小的,另外如果你的机器是32位的那jvm最多也只能用2G,64位无限制
-Xss:每个线程的堆栈大小
-Xmn:设置年轻代大小,整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小,Sun官方推荐配置为整个堆的3/8
-XX:+AggressiveOpts加快编译
-XX:+UseBiasedLocking 锁机制的性能改善
-XX:PermSize 最小PermSpace大小
-XX:MaxPermSize 最大PermSpace大(影响存放静态的类信息和方法信息,静态的方法和变量,final标注的常量信息的使用内存空间)
-XX:+DisableExplicitGC 防止某些手贱的同学在代码里到处写System.gc(),把这个代码置为无效
-XX:SurvivorRatio=65536 -XX:MaxTenuringThreshold=0 去掉了救助空间
-XX:+UseConcMarkSweepGC 设置年老代为并发收集
-XX:+UseParNewGC 设置年轻代为并行收集
-XX:+CMSParallelRemarkEnabled 降低标记停顿
-XX:+UseCMSCompactAtFullCollection CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。
可能会影响性能,但是可以消除碎片
-XX:LargePageSizeInBytes=128m 内存页的大小不可设置过大, 会影响Perm的大小
-XX:CMSInitiatingOccupancyFraction=70 使用cms作为垃圾回收
使用70%后开始CMS收集
-XX:+UseFastAccessorMethods 原始类型的快速优化
-XX:+UseCMSInitiatingOccupancyOnly 使用手动定义初始化定义开始CMS收集
-Djava.awt.headless=true 不加会抛出
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.