JVM 配置简洁说明
1 代理 2 -javaagent:jacoco.jar=key1=value1,key2=value2 -jar Demo.jar 3 4 编码 5 -Dfile.encoding=UTF-8:设置编码规范 6 7 内存 8 工具或持续集成最常用的一条 9 -Xmx1G 最大堆内存,注意没等号,避免OOM: OutOfMemoryError(堆)内存不足错误 10 java.lang.OutOfMemoryError: java heap space 11 12 生产服务器经常会设置的两条(阿里规范提出),注意文件夹需存在 13 -XX:+HeapDumpOnOutOfMemoryError(打印OOM堆快照) 14 -XX:HeapDumpPath=../logs/heapdump.hprof(打印OOM堆快照路径) 15 https://www.jianshu.com/p/4e6e88f1d211 16 17 -XX:MaxPermSize=(持久代内存,避免OOM) 18 大量类加载器反射加载重复类时才出现,比较少见 19 java.lang.OutOfMemoryError: PermGen space 20 21 -server(启动慢运行快的服务器模式,64位只能这个模式不用设) 22 23 -Xms(启动堆内存) 24 -Xmn(年轻内存) 25 -Xss(线程栈内存解决StackOverflowError) 26 -XX:NewRatio=(年轻/年老) 27 -XX:SurvivorRatio=(Eden/Survivor) 28 -XX:PermSize(初始方法区/持久代内存) 29 -XX:MaxTenuringThreshold=(垃圾最大年龄) 30 31 吞吐量优先的并行收集器: 32 -XX:+UseParallelGC(年轻并行收集对UseSerialGC) 33 -XX:ParallelGCThreads=(并行收集线程数(核心数)) 34 -XX:+UseParallelOldGC(年老并行收集JDK6) 35 -XX:MaxGCPauseMillis=(年轻回收最长时间) 36 -XX:+UseAdaptiveSizePolicy(自动比例) 37 38 响应时间优先的并发收集器: 39 -XX:+UseConcMarkSweepGC(年老并发收集) 40 -XX:+UseParNewGC(年轻并行收集) 41 -XX:CMSFullGCsBeforeCompaction=(多少次GC后整理内存) 42 -XX:+UseCMSCompactAtFullCollection(打开年老压缩) 43 44 -XX:GCTimeRatio=n(垃圾回收时间比不超过1/(1+n)) 45 -XX:+CMSIncrementalMode(单CPU用增量模式)
IDEA JVM 设置解析
-Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m(JIT预留代码缓存大小) -XX:+UseConcMarkSweepGC(使用CMC并发标记清除) -XX:SoftRefLRUPolicyMSPerMB=50(软引用LRU策略毫秒每兆) -ea -XX:CICompilerCount=2(最大并行编译数) -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow(省略异常栈信息快速抛出) -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true