注意: JDK版本可以大约看作JAVA版本,但并不绝对
只是个人对这些参数的理解,并不一定专业
-server
这个是服务器运行模式,64位系统是默认开启的,32位系统是关闭的
我们建议你开启此项
-Xincgc
启用Java增量式垃圾回收器。
(没什么需要特别解释的就不会过多说明)
-Xms
初始堆大小
(我一般会写成32M)
建议是物理内存的1/64(<1GB)
-Xmx
最大堆大小
建议是物理内存的1/4(<1GB)
不过既然是开mc服务器,那么内存肯定是全用上
windows服务器建议在总内存上减去1GB,linux无所谓了
群组服酌情决定把,另外,如果是Bungee端,不推荐超过256M(人特别多除外)
-Xss
每个线程的堆栈大小
JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K,
既然增多肯定是有原因的,但是经过大量实践,
对于mc无论是客户端还是服务端 512K足矣
-XX:+AggressiveOpts
加快编译
-XX:+UseCompressedOops
通常64位JVM消耗的内存会比32位的大1.5倍,这是因为对象指针在64位架构下,长度会翻倍(更宽的寻址)。
这个可以压缩指针,起到节约内存占用的新参数。
(32位几乎不受此参数影响)
(最低需要jdk1.6.0_14)
-XX:+UseCMSCompactAtFullCollection
使用并发收集器时,开启对旧数据的压缩.
-XX:+UseFastAccessorMethods
优化原始类型的getter方法性能
-XX:ParallelGCThreads=4
设置旧数据的线程回收数
我在这里讲解并不针对任何 帖子 或 个人
有的人说是服务器的使用的线程,实际不然,这只是对旧数据的回收线程数
我们推荐设置成cpu总核心数的一半或更低
-XX:+UseConcMarkSweepGC
使用CMS内存收集(旧数据回收器)
-XX:CMSFullGCsBeforeCompaction=2
CMS收集多少次后进行内存压缩
-XX:CMSInitiatingOccupancyFraction=70
这个有专门的计算公式
数值应当 小于或等于((Xmx-Xmn)-(Xmn-Xmn/(SurvivorRatior+2)))/(Xmx-Xmn)*100
但是我们并没有对xmn进行设置,所以使用通用参数 70%
-XX:-DisableExplicitGC
禁止代码中显示调用GC
-XX:TargetSurvivorRatio=90
一个计算期望存活大小Desired survivor size的参数.
这个作用就是降低GC被触发的门槛
|