【JVM】堆内存调优

参考博客:JVM调优总结 -Xms -Xmx -Xmn -Xss
视频:https://www.bilibili.com/video/BV1iJ411d7jS?p=8
GCDetails堆内存调优在JDK8和15中的区别:

1.JDK8:-XX:+PrintGCDetails

在这里插入图片描述

-Xms8m -Xmx8M -XX:+PrintGCDetails

log:

"E:\Program Files\Java\jdk1.8.0_231\bin\java.exe" -Xms8m -Xmx8M -XX:+PrintGCDetails  OOMTest
[GC (Allocation Failure) [PSYoungGen: 1536K->504K(2048K)] 1536K->664K(7680K), 0.0010685 secs] [Times: user=0.16 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 2039K->503K(2048K)] 2199K->1363K(7680K), 0.0008535 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 1991K->504K(2048K)] 2851K->1850K(7680K), 0.0006678 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 1522K->504K(2048K)] 4147K->3144K(7680K), 0.0007190 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 1831K->504K(2048K)] 5750K->5061K(7680K), 0.0009179 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 504K->440K(2048K)] 5061K->4997K(7680K), 0.0004627 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (Allocation Failure) [PSYoungGen: 440K->0K(2048K)] [ParOldGen: 4557K->2525K(5632K)] 4997K->2525K(7680K), [Metaspace: 3219K->3219K(1056768K)], 0.0042795 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (Ergonomics) [PSYoungGen: 1315K->0K(2048K)] [ParOldGen: 5081K->2075K(5632K)] 6396K->2075K(7680K), [Metaspace: 3227K->3227K(1056768K)], 0.0036814 secs] [Times: user=0.13 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 1371K->128K(2048K)] 6003K->4759K(7680K), 0.0006270 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[GC (Allocation Failure) [PSYoungGen: 128K->64K(2048K)] 4759K->4695K(7680K), 0.0004666 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (Allocation Failure) [PSYoungGen: 64K->0K(2048K)] [ParOldGen: 4631K->4463K(5632K)] 4695K->4463K(7680K), [Metaspace: 3239K->3239K(1056768K)], 0.0052558 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
[GC (Allocation Failure) [PSYoungGen: 0K->0K(2048K)] 4463K->4463K(7680K), 0.0004683 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
[Full GC (Allocation Failure) [PSYoungGen: 0K->0K(2048K)] [ParOldGen: 4463K->4444K(5632K)] 4463K->4444K(7680K), [Metaspace: 3239K->3239K(1056768K)], 0.0058018 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
Heap
 PSYoungGen      total 2048K, used 46K [0x00000000ffd80000, 0x0000000100000000, 0x0000000100000000)
  eden space 1536K, 3% used [0x00000000ffd80000,0x00000000ffd8b900,0x00000000fff00000)
  from space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)
  to   space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)
 ParOldGen       total 5632K, used 4444K [0x00000000ff800000, 0x00000000ffd80000, 0x00000000ffd80000)
  object space 5632K, 78% used [0x00000000ff800000,0x00000000ffc57080,0x00000000ffd80000)
 Metaspace       used 3271K, capacity 4496K, committed 4864K, reserved 1056768K
  class space    used 354K, capacity 388K, committed 512K, reserved 1048576K
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3332)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:674)
	at java.lang.StringBuilder.append(StringBuilder.java:208)
	at OOMTest.main(OOMTest.java:18)

2.JDK15:-Xlog:gc

-Xlog:gc*

log:

[0.011s][info   ][gc] Using G1
[0.011s][info   ][gc,init] Version: 15+36-1562 (release)
[0.011s][info   ][gc,init] CPUs: 12 total, 12 available
[0.011s][info   ][gc,init] Memory: 16221M
[0.011s][info   ][gc,init] Large Page Support: Disabled
[0.011s][info   ][gc,init] NUMA Support: Disabled
[0.011s][info   ][gc,init] Compressed Oops: Enabled (32-bit)
[0.011s][info   ][gc,init] Heap Region Size: 1M
[0.011s][info   ][gc,init] Heap Min Capacity: 8M
[0.011s][info   ][gc,init] Heap Initial Capacity: 8M
[0.011s][info   ][gc,init] Heap Max Capacity: 8M
[0.011s][info   ][gc,init] Pre-touch: Disabled
[0.011s][info   ][gc,init] Parallel Workers: 10
[0.011s][info   ][gc,init] Concurrent Workers: 3
[0.011s][info   ][gc,init] Concurrent Refinement Workers: 10
[0.011s][info   ][gc,init] Periodic GC: Disabled
[0.012s][info   ][gc,metaspace] CDS archive(s) mapped at: [0x0000000800000000-0x0000000800b50000-0x0000000800b50000), size 11862016, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
[0.012s][info   ][gc,metaspace] Compressed class space mapped at: 0x0000000800b50000-0x0000000840b50000, size: 1073741824
[0.012s][info   ][gc,metaspace] Narrow klass base: 0x0000000800000000, Narrow klass shift: 3, Narrow klass range: 0x100000000
[0.095s][info   ][gc,start    ] GC(0) Pause Young (Concurrent Start) (G1 Humongous Allocation)
[0.095s][info   ][gc,task     ] GC(0) Using 2 workers of 10 for evacuation
[0.097s][info   ][gc,phases   ] GC(0)   Pre Evacuate Collection Set: 0.0ms
[0.097s][info   ][gc,phases   ] GC(0)   Merge Heap Roots: 0.0ms
[0.097s][info   ][gc,phases   ] GC(0)   Evacuate Collection Set: 1.3ms
[0.097s][info   ][gc,phases   ] GC(0)   Post Evacuate Collection Set: 0.3ms
[0.097s][info   ][gc,phases   ] GC(0)   Other: 0.2ms
[0.097s][info   ][gc,heap     ] GC(0) Eden regions: 3->0(1)
[0.097s][info   ][gc,heap     ] GC(0) Survivor regions: 0->1(1)
[0.097s][info   ][gc,heap     ] GC(0) Old regions: 0->1
[0.097s][info   ][gc,heap     ] GC(0) Archive regions: 0->0
[0.097s][info   ][gc,heap     ] GC(0) Humongous regions: 3->2
[0.097s][info   ][gc,metaspace] GC(0) Metaspace: 1040K(4864K)->1040K(4864K) NonClass: 939K(4352K)->939K(4352K) Class: 100K(512K)->100K(512K)
[0.097s][info   ][gc          ] GC(0) Pause Young (Concurrent Start) (G1 Humongous Allocation) 5M->3M(8M) 1.943ms
[0.097s][info   ][gc,cpu      ] GC(0) User=0.00s Sys=0.00s Real=0.00s
[0.097s][info   ][gc          ] GC(1) Concurrent Cycle
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Clear Claimed Marks
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Clear Claimed Marks 0.008ms
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Scan Root Regions
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Scan Root Regions 0.616ms
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Mark (0.097s)
[0.097s][info   ][gc,start    ] GC(2) Pause Young (Normal) (G1 Humongous Allocation)
[0.097s][info   ][gc,marking  ] GC(1) Concurrent Mark From Roots
[0.097s][info   ][gc,task     ] GC(2) Using 2 workers of 10 for evacuation
[0.098s][info   ][gc,task     ] GC(1) Using 3 workers of 3 for marking
[0.099s][info   ][gc          ] GC(2) To-space exhausted
[0.099s][info   ][gc,phases   ] GC(2)   Pre Evacuate Collection Set: 0.2ms
[0.099s][info   ][gc,phases   ] GC(2)   Merge Heap Roots: 0.0ms
[0.099s][info   ][gc,phases   ] GC(2)   Evacuate Collection Set: 1.0ms
[0.099s][info   ][gc,phases   ] GC(2)   Post Evacuate Collection Set: 0.5ms
[0.099s][info   ][gc,phases   ] GC(2)   Other: 0.1ms
[0.099s][info   ][gc,heap     ] GC(2) Eden regions: 1->0(1)
[0.099s][info   ][gc,heap     ] GC(2) Survivor regions: 1->0(0)
[0.099s][info   ][gc,heap     ] GC(2) Old regions: 1->2
[0.099s][info   ][gc,heap     ] GC(2) Archive regions: 0->0
[0.099s][info   ][gc,heap     ] GC(2) Humongous regions: 5->3
[0.099s][info   ][gc,metaspace] GC(2) Metaspace: 1041K(4864K)->1041K(4864K) NonClass: 940K(4352K)->940K(4352K) Class: 100K(512K)->100K(512K)
[0.099s][info   ][gc          ] GC(2) Pause Young (Normal) (G1 Humongous Allocation) 6M->5M(8M) 1.608ms
[0.099s][info   ][gc,cpu      ] GC(2) User=0.00s Sys=0.00s Real=0.00s
[0.099s][info   ][gc,task     ] GC(3) Using 1 workers of 10 for full compaction
[0.099s][info   ][gc,start    ] GC(3) Pause Full (G1 Humongous Allocation)
[0.099s][info   ][gc,phases,start] GC(3) Phase 1: Mark live objects
[0.101s][info   ][gc,phases      ] GC(3) Phase 1: Mark live objects 1.406ms
[0.101s][info   ][gc,phases,start] GC(3) Phase 2: Prepare for compaction
[0.101s][info   ][gc,phases      ] GC(3) Phase 2: Prepare for compaction 0.271ms
[0.101s][info   ][gc,phases,start] GC(3) Phase 3: Adjust pointers
[0.102s][info   ][gc,phases      ] GC(3) Phase 3: Adjust pointers 0.687ms
[0.102s][info   ][gc,phases,start] GC(3) Phase 4: Compact heap
[0.102s][info   ][gc,phases      ] GC(3) Phase 4: Compact heap 0.397ms
[0.102s][info   ][gc,heap        ] GC(3) Eden regions: 0->0(1)
[0.102s][info   ][gc,heap        ] GC(3) Survivor regions: 0->0(0)
[0.102s][info   ][gc,heap        ] GC(3) Old regions: 2->2
[0.102s][info   ][gc,heap        ] GC(3) Archive regions: 0->0
[0.102s][info   ][gc,heap        ] GC(3) Humongous regions: 3->3
[0.102s][info   ][gc,metaspace   ] GC(3) Metaspace: 1041K(4864K)->1041K(4864K) NonClass: 940K(4352K)->940K(4352K) Class: 100K(512K)->100K(512K)
[0.102s][info   ][gc             ] GC(3) Pause Full (G1 Humongous Allocation) 5M->4M(8M) 3.073ms
[0.102s][info   ][gc,cpu         ] GC(3) User=0.00s Sys=0.00s Real=0.00s
[0.102s][info   ][gc,task        ] GC(4) Using 1 workers of 10 for full compaction
[0.102s][info   ][gc,start       ] GC(4) Pause Full (G1 Humongous Allocation)
[0.102s][info   ][gc,phases,start] GC(4) Phase 1: Mark live objects
[0.104s][info   ][gc,phases      ] GC(4) Phase 1: Mark live objects 1.569ms
[0.104s][info   ][gc,phases,start] GC(4) Phase 2: Prepare for compaction
[0.104s][info   ][gc,phases      ] GC(4) Phase 2: Prepare for compaction 0.224ms
[0.104s][info   ][gc,phases,start] GC(4) Phase 3: Adjust pointers
[0.105s][info   ][gc,phases      ] GC(4) Phase 3: Adjust pointers 0.613ms
[0.105s][info   ][gc,phases,start] GC(4) Phase 4: Compact heap
[0.105s][info   ][gc,phases      ] GC(4) Phase 4: Compact heap 0.323ms
[0.105s][info   ][gc,heap        ] GC(4) Eden regions: 0->0(1)
[0.105s][info   ][gc,heap        ] GC(4) Survivor regions: 0->0(0)
[0.105s][info   ][gc,heap        ] GC(4) Old regions: 2->2
[0.105s][info   ][gc,heap        ] GC(4) Archive regions: 0->0
[0.105s][info   ][gc,heap        ] GC(4) Humongous regions: 3->3
[0.105s][info   ][gc,metaspace   ] GC(4) Metaspace: 1041K(4864K)->1014K(4864K) NonClass: 940K(4352K)->919K(4352K) Class: 100K(512K)->95K(512K)
[0.105s][info   ][gc             ] GC(4) Pause Full (G1 Humongous Allocation) 4M->4M(8M) 3.002ms
[0.105s][info   ][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s
[0.106s][info   ][gc,marking     ] GC(1) Concurrent Mark From Roots 8.062ms
[0.106s][info   ][gc,marking     ] GC(1) Concurrent Mark Abort
[0.106s][info   ][gc             ] GC(1) Concurrent Cycle 8.746ms
[0.106s][info   ][gc,heap,exit   ] Heap
[0.106s][info   ][gc,heap,exit   ]  garbage-first heap   total 8192K, used 4113K [0x00000000ff800000, 0x0000000100000000)
[0.106s][info   ][gc,heap,exit   ]   region size 1024K, 1 young (1024K), 0 survivors (0K)
[0.106s][info   ][gc,heap,exit   ]  Metaspace       used 1028K, capacity 4525K, committed 4864K, reserved 1056768K
[0.106s][info   ][gc,heap,exit   ]   class space    used 96K, capacity 397K, committed 512K, reserved 1048576K
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.base/jdk.internal.misc.Unsafe.allocateUninitializedArray0(Unsafe.java:1409)
	at java.base/jdk.internal.misc.Unsafe.allocateUninitializedArray(Unsafe.java:1402)
	at java.base/java.lang.StringConcatHelper.newArray(StringConcatHelper.java:470)
	at java.base/java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(DirectMethodHandle$Holder)
	at java.base/java.lang.invoke.LambdaForm$MH/0x0000000800bb5440.invoke(LambdaForm$MH)
	at java.base/java.lang.invoke.LambdaForm$MH/0x0000000800bb5c40.linkToTargetMethod(LambdaForm$MH)
	at OOMTest.main(OOMTest.java:18)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值