) 13421K->13218K(18944K), 0.1904231 secs] 2020-06-02T22:30:58.021+0800: 8.949: [Full GC (Ergonomics)...->13569K(18944K), 0.1366324 secs] 2020-06-02T22:30:58.838+0800: 9.766: [Full GC (Ergonomics) 17153K-...>13703K(18944K), 0.1436044 secs] 2020-06-02T22:30:59.069+0800: 9.998: [Full GC (Ergonomics) 17287K->...13837K(18944K), 0.1610447 secs] 2020-06-02T22:30:59.318+0800: 10.246: [Full GC (Ergonomics) 17402K->...13971K(18944K), 0.1682002 secs] 2020-06-02T22:30:59.592+0800: 10.520: [Full GC (Ergonomics) 17402K->
) 2136K->1992K(3584K), 0.0040658 secs] [Full GC (Ergonomics) 2807K->2791K(3584K), 0.0036280 secs] [...Full GC (Allocation Failure) 2791K->373K(3584K), 0.0032477 secs] [Full GC (Ergonomics) 2786K->2773K...Full GC (Ergonomics) 2779K->2770K(3584K), 0.0016329 secs] [Full GC (Ergonomics) 2779K->2775K(3584K)..., 0.0023157 secs] [Full GC (Ergonomics) 2775K->2775K(3584K), 0.0015927 secs] [Full GC (Ergonomics)...Full GC (Ergonomics) 2802K->2799K(3584K), 0.0031293 secs] [Full GC (Ergonomics) 3023K->3023K(3584K)
] [Full GC (Ergonomics) 15511K->13542K(18432K), 0.1956311 secs] ......[Full GC (Ergonomics) 16382K->16381K(18432K), 0.1734902 secs] [Full GC (Ergonomics) 16383K->16383K(...secs] [Full GC (Ergonomics) Exception in thread "main" 16383K->16382K(18432K), 0.1406222 secs] [Full...GC (Allocation Failure) 16382K->16382K(18432K), 0.1392928 secs] [Full GC (Ergonomics) 16383K->16382K...(18432K), 0.1546243 secs] [Full GC (Ergonomics) 16383K->16382K(18432K), 0.1755271 secs] [Full GC (Ergonomics
另外这里的_adaptive_size_policy 常量就是对应的Ergonomics: case _adaptive_size_policy: return "Ergonomics...那么你也许有疑问说[Full GC (Ergonomics) 的Ergonomics究竟是个什么东东? Ergonomics翻译成中文,一般都是“人体工程学”。...在JVM中的垃圾收集器中的Ergonomics就是负责自动的调解gc暂停时间和吞吐量之间的平衡,然后你的虚拟机性能更好的一种做法。...对于注重吞吐量的收集器来说,在某个generation被过渡使用之前,GC ergonomics就会启动一次GC。...总之,以后遇到Full GC,不一定只有Allocation Failure,还有更多,比如本文中的“Ergonomics”。
] [Full GC (Ergonomics) 15511K->13542K(18432K), 0.1956311 secs] ......[Full GC (Ergonomics) 16382K->16381K(18432K), 0.1734902 secs] [Full GC (Ergonomics) 16383K->16383K(... secs] [Full GC (Ergonomics) Exception in thread "main" 16383K->16382K(18432K), 0.1406222 secs] [Full... GC (Allocation Failure) 16382K->16382K(18432K), 0.1392928 secs] [Full GC (Ergonomics) 16383K->16382K...(18432K), 0.1546243 secs] [Full GC (Ergonomics) 16383K->16382K(18432K), 0.1755271 secs] [Full GC (Ergonomics
secs]2023-11-16T19:04:03.006+0800: 459907.346: [JNI Weak Reference, 0.0000448 secs] 459908.553: [G1Ergonomics...allocation request: 0 bytes, threshold: 7730941110 bytes (30.00 %), source: end of GC] 459908.553: [G1Ergonomics...代码解读复制代码2023-11-16T19:03:47.107+0800: 459891.447: Application time: 5.0003976 seconds 459891.490: [G1Ergonomics...bytes, threshold: 7660476810 bytes (30.00 %), source: concurrent humongous allocation] 459891.499: [G1Ergonomics...seconds2023-11-16T19:03:50.231+0800: 459894.572: Application time: 0.0031969 seconds 459894.583: [G1Ergonomics
Heap Size (Estimated): 239.75M Ergonomics Machine Class: client Using VM: OpenJDK 64-Bit Server...Heap Size (Estimated): 348.00M Ergonomics Machine Class: client Using VM: OpenJDK 64-Bit Server...Heap Size (Estimated): 193.38M Ergonomics Machine Class: client Using VM: OpenJDK 64-Bit Server
39936K), 0.0124746 secs] [GC (Allocation Failure) 29195K->29008K(39936K), 0.0150616 secs] [Full GC (Ergonomics...55296K), 0.0102666 secs] [GC (Allocation Failure) 43543K->43393K(55808K), 0.0087281 secs] [Full GC (Ergonomics...60928K), 0.0104380 secs] [GC (Allocation Failure) -- 51630K->58798K(60928K), 0.0100362 secs] [Full GC (Ergonomics...) 58798K->51458K(60928K), 0.0055668 secs] [Full GC (Ergonomics) 58793K->58626K(60928K), 0.0045510 secs...39936K), 0.0274278 secs]:新生代的GC,GC后堆内存占用从7839K减少到7592K,堆大小为39936K 可以看到,多次YGC后,回收不了了,就产生了FGC: [Full GC (Ergonomics
] 1022K->522K(30208K), 0.0007804 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 1.959: [Full GC (Ergonomics...28567K->28448K(30208K), 0.0016967 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 1.959: [Full GC (Ergonomics...28346K->28357K(30208K), 0.0012428 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 3.622: [Full GC (Ergonomics
8801.974: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: occupancy...8822.704: [ G1Ergonomics (Mixed GCs) continue mixed GCs, reason: candidate old regions available,...8830.249: [G1Ergonomics (Mixed GCs) do not continue mixed GCs, reason: reclaimable percentage not...4948.653: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: requested...by GC cause, GC cause: G1 Humongous Allocation] 7677.280: [G1Ergonomics (Concurrent Cycles) do not
] 内存足够时,垃圾回收后:[B@1de0aca6 [GC (Allocation Failure) 9588K->9570K(15872K), 0.0013485 secs] [Full GC (Ergonomics...) 9570K->9506K(15872K), 0.0032467 secs] [Full GC (Ergonomics) 12659K->12549K(15872K), 0.0083257 secs...] [Full GC (Ergonomics) 13573K->13573K(15872K), 0.0043525 secs] [Full GC (Allocation Failure) 13573K...(15872K), 0.0019272 secs] [GC (Allocation Failure) 9713K->9621K(15872K), 0.0015966 secs] [Full GC (Ergonomics
6144K)] 17722K->13790K(19968K), 0.0042190 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] [Full GC (Ergonomics...3273K(1056768K)], 0.0129237 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] [B@46fbb2c1 4 [Full GC (Ergonomics...6144K)] 17722K->13757K(19968K), 0.0034897 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] [Full GC (Ergonomics
根据HotSpot VM的Ergonomics,我们机器上默认使用的就是Parallel GC。...可以看到,居然出现了两次FullGC(ParallelOld),GC的原因是Ergonomics,很明显不是因为内存不足引起(Allocation Failure)的,应该是可以避免的。...我没有指定-Xms,根据Ergonomics,初始堆的大小是1G。所以看上去是堆的动态增大(commit更多的堆)会触发FullGC?通过显式设置-Xms8G来看看, ?...两次由于Ergonomics引起的FullGC消失掉了,但是也可以看到committed heap仍然是在动态增大的,却没有再触发FullGC,因此可以确定,adaptive size policy引起的堆大小调整...试了下-XX:MaxGCPauseMillis= 和-XX:GCTimeRatio=并没有什么提升,看来这部分的Ergonomics并不适用于短进程?
此例中就是19456K - 9216K = 10240K Parallel Old 是Parallel Scavenge 收集器的老年代版本 641.642: [Full GC (Ergonomics)...[Full GC (Ergonomics) ,表示执行全局垃圾回收 [PSYoungGen: 728K->0K(9216K)] 格式为:[PSYoungGen: a->b(c)] 年轻代使用的是多线程垃圾收集器...执行完 byte6 byte[] byte6 = new byte[5 * _1M]; 控制台打印的GC日志 10342.704: [ Full GC (Ergonomics) [PSYoungGen...控制台打印的GC日志 10427.298: [Full GC (Ergonomics) [PSYoungGen: 7331K->7168K(9216K)] [ParOldGen: 8745K->8745K...[Full GC (Ergonomics) [PSYoungGen: 7331K->7168K(9216K)] 本次 Minor GC 发生在PS Young Generation 年轻代 Eden Space
)] 385242K->200111K(460800K), 0.0159145 secs] [Times: user=0.03 sys=0.03, real=0.02 secs] [Full GC (Ergonomics...)] 706499K->357559K(918016K), 0.0314269 secs] [Times: user=0.09 sys=0.03, real=0.03 secs] [Full GC (Ergonomics...1330731K->655186K(1544192K), 0.0844278 secs] [Times: user=0.05 sys=0.11, real=0.08 secs] [Full GC (Ergonomics...比如默认情况下是15次”,结果我们观察前面两次Full GC日志发现,GC不到15次,结果年轻代就挪到老年代了 [Full GC (Ergonomics) [PSYoungGen: 10746K->0K...[Full GC (Ergonomics) [PSYoungGen: 102898K->0K(591360K)] [ParOldGen: 254661K->278543K(483840K)] 357559K
11534336 bytes, new threshold 15 (max 15) - age 1: 5011600 bytes, 5011600 total 27.884: [G1Ergonomics...[G1Ergonomics (CSet Construction) start choosing CSet, _pending_cards: 1461, predicted base time: 35.25...[G1Ergonomics (CSet Construction) add young regions to CSet, eden: 159 regions, survivors: 13 regions...[G1Ergonomics (CSet Construction) finish choosing CSet, eden: 159 regions, survivors: 13 regions, old...global concurrent marking 日志 对于global concurrent marking过程,它的日志如下所示: 66955.252: [G1Ergonomics (Concurrent
但是你还是需要先搞清楚默认值为什么这么设置,默认值是从统计学里得来的,先看这里: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.html
6144K)] 12611K->12594K(19968K), 0.0073455 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] [Full GC (Ergonomics...Metaspace: 3450K->3450K(1056768K)], 0.1760388 secs] [Times: user=0.39 sys=0.00, real=0.18 secs] [Full GC (Ergonomics...Metaspace: 3450K->3450K(1056768K)], 0.1199610 secs] [Times: user=0.44 sys=0.00, real=0.12 secs] [Full GC (Ergonomics
Gradle's configuration guide<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc-<em>ergonomics</em>.html
领取专属 10元无门槛券
手把手带您无忧上云