# Detecting actual CPU count: 8 detected # JMH 1.17.2 (released 827 days ago, please consider updating!) # VM version: JDK 13-internal, VM 13-internal+0-adhoc.zgu.jdk # VM invoker: /home/zgu/workspace/jdk/build/linux-x86_64-server-release/images/jdk/bin/java # VM options: -Xmx1g -Xms1g -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -Xlog:gc+stats # Warmup: 10 iterations, 3 s each # Measurement: 10 iterations, 1 s each # Timeout: 10 min per iteration # Threads: 8 threads, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: org.openjdk.specjvm2008.Compiler.compiler # Run progress: 0.00% complete, ETA 00:02:00 # Fork: 1 of 3 # Warmup Iteration 1: 50.245 ops/min # Warmup Iteration 2: 70.684 ops/min # Warmup Iteration 3: 90.519 ops/min # Warmup Iteration 4: 107.020 ops/min # Warmup Iteration 5: 111.361 ops/min # Warmup Iteration 6: 113.745 ops/min # Warmup Iteration 7: 110.835 ops/min # Warmup Iteration 8: 99.780 ops/min # Warmup Iteration 9: 83.643 ops/min # Warmup Iteration 10: 93.895 ops/min Iteration 1: 99.431 ops/min Iteration 2: 113.156 ops/min Iteration 3: 102.094 ops/min Iteration 4: 109.494 ops/min Iteration 5: 101.655 ops/min Iteration 6: 102.311 ops/min Iteration 7: 112.330 ops/min Iteration 8: 104.076 ops/min Iteration 9: 108.876 ops/min Iteration 10: 104.353 ops/min [284.853s][info][gc,stats] [284.853s][info][gc,stats] GC STATISTICS: [284.853s][info][gc,stats] "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- [284.853s][info][gc,stats] and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. [284.853s][info][gc,stats] "(N)" (net) pauses are the times spent in the actual GC code. [284.853s][info][gc,stats] "a" is average time for each phase, look at levels to see if average makes sense. [284.853s][info][gc,stats] "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). [284.853s][info][gc,stats] [284.853s][info][gc,stats] Total Pauses (G) = 4.19 s (a = 1211 us) (n = 3461) (lvls, us = 137, 461, 805, 1191, 26416) [284.853s][info][gc,stats] Total Pauses (N) = 2.05 s (a = 594 us) (n = 3461) (lvls, us = 4, 33, 471, 844, 7902) [284.853s][info][gc,stats] Pause Init Mark (G) = 0.98 s (a = 951 us) (n = 1034) (lvls, us = 447, 740, 811, 936, 13757) [284.853s][info][gc,stats] Pause Init Mark (N) = 0.55 s (a = 533 us) (n = 1034) (lvls, us = 273, 445, 502, 564, 1784) [284.853s][info][gc,stats] Make Parsable = 0.01 s (a = 5 us) (n = 1034) (lvls, us = 3, 4, 5, 5, 73) [284.853s][info][gc,stats] Clear Liveness = 0.09 s (a = 88 us) (n = 1034) (lvls, us = 37, 65, 77, 100, 399) [284.853s][info][gc,stats] Scan Roots = 0.44 s (a = 425 us) (n = 1034) (lvls, us = 215, 346, 402, 453, 1444) [284.853s][info][gc,stats] S: Thread Roots = 0.05 s (a = 45 us) (n = 1034) (lvls, us = 19, 36, 41, 46, 454) [284.853s][info][gc,stats] S: Universe Roots = 0.00 s (a = 2 us) (n = 1034) (lvls, us = 1, 2, 2, 2, 13) [284.853s][info][gc,stats] S: JNI Roots = 0.00 s (a = 2 us) (n = 1034) (lvls, us = 1, 1, 2, 2, 21) [284.853s][info][gc,stats] S: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 1034) (lvls, us = 0, 0, 0, 0, 3) [284.853s][info][gc,stats] S: JFR Weak Roots = 0.00 s (a = 0 us) (n = 1034) (lvls, us = 0, 0, 0, 1, 5) [284.853s][info][gc,stats] S: JNI Weak Roots = 0.00 s (a = 0 us) (n = 1034) (lvls, us = 0, 0, 0, 0, 7) [284.853s][info][gc,stats] S: String Table Roots = 0.06 s (a = 54 us) (n = 1034) (lvls, us = 0, 30, 68, 80, 260) [284.853s][info][gc,stats] S: VM Weak Roots = 0.01 s (a = 10 us) (n = 1034) (lvls, us = 0, 6, 12, 14, 55) [284.853s][info][gc,stats] S: Synchronizer Roots = 0.00 s (a = 0 us) (n = 1034) (lvls, us = 0, 0, 0, 0, 1) [284.853s][info][gc,stats] S: Management Roots = 0.00 s (a = 1 us) (n = 1034) (lvls, us = 1, 1, 1, 1, 9) [284.853s][info][gc,stats] S: System Dict Roots = 0.01 s (a = 9 us) (n = 1034) (lvls, us = 5, 7, 9, 10, 33) [284.853s][info][gc,stats] S: CLDG Roots = 0.11 s (a = 111 us) (n = 1034) (lvls, us = 47, 88, 109, 123, 293) [284.853s][info][gc,stats] S: JVMTI Roots = 0.00 s (a = 1 us) (n = 1034) (lvls, us = 0, 0, 0, 1, 8) [284.853s][info][gc,stats] Resize TLABs = 0.00 s (a = 2 us) (n = 1034) (lvls, us = 1, 1, 1, 2, 18) [284.853s][info][gc,stats] Pause Final Mark (G) = 2.27 s (a = 2193 us) (n = 1034) (lvls, us = 752, 1113, 1348, 1992, 26415) [284.853s][info][gc,stats] Pause Final Mark (N) = 1.35 s (a = 1307 us) (n = 1034) (lvls, us = 531, 863, 1035, 1543, 7902) [284.853s][info][gc,stats] Update Roots = 0.19 s (a = 286 us) (n = 674) (lvls, us = 205, 248, 266, 291, 1326) [284.853s][info][gc,stats] U: Thread Roots = 0.02 s (a = 35 us) (n = 674) (lvls, us = 17, 29, 32, 36, 97) [284.853s][info][gc,stats] U: Universe Roots = 0.00 s (a = 1 us) (n = 674) (lvls, us = 0, 1, 1, 1, 5) [284.853s][info][gc,stats] U: JNI Roots = 0.00 s (a = 1 us) (n = 674) (lvls, us = 0, 1, 1, 1, 6) [284.853s][info][gc,stats] U: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 674) (lvls, us = 0, 0, 0, 0, 2) [284.853s][info][gc,stats] U: JFR Weak Roots = 0.00 s (a = 0 us) (n = 674) (lvls, us = 0, 0, 0, 1, 4) [284.853s][info][gc,stats] U: JNI Weak Roots = 0.00 s (a = 0 us) (n = 674) (lvls, us = 0, 0, 0, 0, 3) [284.853s][info][gc,stats] U: String Table Roots = 0.01 s (a = 15 us) (n = 674) (lvls, us = 11, 13, 13, 14, 80) [284.853s][info][gc,stats] U: VM Weak Roots = 0.00 s (a = 3 us) (n = 674) (lvls, us = 2, 3, 3, 3, 28) [284.853s][info][gc,stats] U: Synchronizer Roots = 0.00 s (a = 0 us) (n = 674) (lvls, us = 0, 0, 0, 0, 1) [284.853s][info][gc,stats] U: Management Roots = 0.00 s (a = 1 us) (n = 674) (lvls, us = 1, 1, 1, 1, 7) [284.853s][info][gc,stats] U: System Dict Roots = 0.00 s (a = 5 us) (n = 674) (lvls, us = 4, 5, 5, 5, 22) [284.853s][info][gc,stats] U: CLDG Roots = 0.04 s (a = 66 us) (n = 674) (lvls, us = 29, 51, 66, 80, 173) [284.853s][info][gc,stats] U: JVMTI Roots = 0.00 s (a = 1 us) (n = 674) (lvls, us = 0, 0, 0, 1, 5) [284.853s][info][gc,stats] Finish Queues = 0.24 s (a = 231 us) (n = 1034) (lvls, us = 43, 102, 135, 217, 2549) [284.853s][info][gc,stats] Weak References = 0.18 s (a = 847 us) (n = 207) (lvls, us = 221, 273, 436, 1367, 4400) [284.853s][info][gc,stats] Process = 0.17 s (a = 842 us) (n = 207) (lvls, us = 217, 270, 432, 1367, 4392) [284.853s][info][gc,stats] Complete Liveness = 0.06 s (a = 55 us) (n = 1034) (lvls, us = 24, 38, 46, 61, 324) [284.853s][info][gc,stats] Prepare Evacuation = 0.29 s (a = 283 us) (n = 1034) (lvls, us = 113, 229, 271, 305, 1200) [284.853s][info][gc,stats] Initial Evacuation = 0.38 s (a = 369 us) (n = 1034) (lvls, us = 143, 227, 258, 307, 6095) [284.853s][info][gc,stats] E: Thread Roots = 0.03 s (a = 31 us) (n = 1034) (lvls, us = 12, 24, 27, 32, 281) [284.853s][info][gc,stats] E: Code Cache Roots = 0.20 s (a = 190 us) (n = 1034) (lvls, us = 20, 115, 127, 148, 1421) [284.853s][info][gc,stats] E: JVMTI Roots = 0.00 s (a = 0 us) (n = 1034) (lvls, us = 0, 0, 0, 0, 5) [284.853s][info][gc,stats] Pause Final Evac (G) = 0.44 s (a = 645 us) (n = 675) (lvls, us = 158, 244, 283, 352, 17422) [284.853s][info][gc,stats] Pause Final Evac (N) = 0.01 s (a = 9 us) (n = 675) (lvls, us = 3, 5, 6, 8, 38) [284.853s][info][gc,stats] Pause Init Update Refs (G) = 0.23 s (a = 639 us) (n = 359) (lvls, us = 137, 273, 311, 408, 12390) [284.853s][info][gc,stats] Pause Init Update Refs (N) = 0.01 s (a = 36 us) (n = 359) (lvls, us = 16, 29, 32, 39, 120) [284.853s][info][gc,stats] Pause Final Update Refs (G) = 0.27 s (a = 757 us) (n = 359) (lvls, us = 447, 561, 611, 723, 5645) [284.853s][info][gc,stats] Pause Final Update Refs (N) = 0.13 s (a = 364 us) (n = 359) (lvls, us = 244, 299, 334, 381, 1101) [284.853s][info][gc,stats] Update Roots = 0.10 s (a = 290 us) (n = 359) (lvls, us = 193, 236, 270, 309, 821) [284.853s][info][gc,stats] UR: Thread Roots = 0.01 s (a = 35 us) (n = 359) (lvls, us = 17, 27, 30, 36, 136) [284.853s][info][gc,stats] UR: Universe Roots = 0.00 s (a = 1 us) (n = 359) (lvls, us = 0, 1, 1, 1, 3) [284.853s][info][gc,stats] UR: JNI Roots = 0.00 s (a = 1 us) (n = 359) (lvls, us = 0, 1, 1, 1, 3) [284.853s][info][gc,stats] UR: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 359) (lvls, us = 0, 0, 0, 0, 2) [284.853s][info][gc,stats] UR: JFR Weak Roots = 0.00 s (a = 0 us) (n = 359) (lvls, us = 0, 0, 0, 0, 2) [284.853s][info][gc,stats] UR: JNI Weak Roots = 0.00 s (a = 0 us) (n = 359) (lvls, us = 0, 0, 0, 0, 3) [284.853s][info][gc,stats] UR: String Table Roots = 0.01 s (a = 14 us) (n = 359) (lvls, us = 10, 12, 13, 14, 82) [284.853s][info][gc,stats] UR: VM Weak Roots = 0.00 s (a = 3 us) (n = 359) (lvls, us = 2, 3, 3, 3, 47) [284.853s][info][gc,stats] UR: Synchronizer Roots = 0.00 s (a = 0 us) (n = 359) (lvls, us = 0, 0, 0, 0, 1) [284.853s][info][gc,stats] UR: Management Roots = 0.00 s (a = 1 us) (n = 359) (lvls, us = 1, 1, 1, 1, 21) [284.853s][info][gc,stats] UR: System Dict Roots = 0.00 s (a = 5 us) (n = 359) (lvls, us = 3, 4, 5, 5, 26) [284.853s][info][gc,stats] UR: CLDG Roots = 0.02 s (a = 60 us) (n = 359) (lvls, us = 26, 44, 58, 72, 153) [284.853s][info][gc,stats] UR: JVMTI Roots = 0.00 s (a = 1 us) (n = 359) (lvls, us = 0, 0, 0, 1, 3) [284.853s][info][gc,stats] Recycle = 0.02 s (a = 66 us) (n = 359) (lvls, us = 47, 53, 58, 67, 298) [284.853s][info][gc,stats] Concurrent Reset = 0.69 s (a = 669 us) (n = 1034) (lvls, us = 156, 434, 477, 563, 50312) [284.853s][info][gc,stats] Concurrent Marking = 108.42 s (a = 104857 us) (n = 1034) (lvls, us = 8867, 87695, 101562, 117188, 219707) [284.853s][info][gc,stats] Concurrent Precleaning = 0.68 s (a = 3266 us) (n = 207) (lvls, us = 123, 877, 1621, 2715, 33067) [284.853s][info][gc,stats] Concurrent Evacuation = 14.26 s (a = 13789 us) (n = 1034) (lvls, us = 656, 5586, 11914, 19336, 51875) [284.853s][info][gc,stats] Concurrent Update Refs = 32.33 s (a = 90047 us) (n = 359) (lvls, us = 7070, 74805, 87500, 105469, 161545) [284.853s][info][gc,stats] Concurrent Cleanup = 0.34 s (a = 243 us) (n = 1393) (lvls, us = 131, 170, 211, 240, 13239) [284.853s][info][gc,stats] [284.853s][info][gc,stats] [284.853s][info][gc,stats] Under allocation pressure, concurrent cycles may cancel, and either continue cycle [284.853s][info][gc,stats] under stop-the-world pause or result in stop-the-world Full GC. Increase heap size, [284.853s][info][gc,stats] tune GC heuristics, set more aggressive pacing delay, or lower allocation rate [284.853s][info][gc,stats] to avoid Degenerated and Full GC cycles. [284.853s][info][gc,stats] [284.853s][info][gc,stats] 1034 successful concurrent GCs [284.853s][info][gc,stats] 0 invoked explicitly [284.853s][info][gc,stats] 0 invoked implicitly [284.853s][info][gc,stats] [284.853s][info][gc,stats] 0 Degenerated GCs [284.853s][info][gc,stats] 0 caused by allocation failure [284.853s][info][gc,stats] 0 upgraded to Full GC [284.853s][info][gc,stats] [284.853s][info][gc,stats] 0 Full GCs [284.853s][info][gc,stats] 0 invoked explicitly [284.853s][info][gc,stats] 0 invoked implicitly [284.853s][info][gc,stats] 0 caused by allocation failure [284.853s][info][gc,stats] 0 upgraded from Degenerated GC [284.853s][info][gc,stats] [284.853s][info][gc,stats] [284.853s][info][gc,stats] ALLOCATION PACING: [284.853s][info][gc,stats] [284.853s][info][gc,stats] Max pacing delay is set for 10 ms. [284.853s][info][gc,stats] [284.853s][info][gc,stats] Higher delay would prevent application outpacing the GC, but it will hide the GC latencies [284.853s][info][gc,stats] from the STW pause times. Pacing affects the individual threads, and so it would also be [284.853s][info][gc,stats] invisible to the usual profiling tools, but would add up to end-to-end application latency. [284.853s][info][gc,stats] Raise max pacing delay with care. [284.853s][info][gc,stats] [284.853s][info][gc,stats] Actual pacing delays histogram: [284.853s][info][gc,stats] [284.853s][info][gc,stats] From - To Count Sum [284.853s][info][gc,stats] 1 ms - 2 ms: 777 388 ms [284.853s][info][gc,stats] 2 ms - 4 ms: 1004 1004 ms [284.853s][info][gc,stats] 4 ms - 8 ms: 1631 3262 ms [284.853s][info][gc,stats] 8 ms - 16 ms: 36314 145256 ms [284.853s][info][gc,stats] 16 ms - 32 ms: 2629 21032 ms [284.853s][info][gc,stats] 32 ms - 64 ms: 97 1552 ms [284.853s][info][gc,stats] 64 ms - 128 ms: 1 32 ms [284.853s][info][gc,stats] Total: 42453 172526 ms [284.853s][info][gc,stats] [284.853s][info][gc,stats] Pacing delays are measured from entering the pacing code till exiting it. Therefore, [284.853s][info][gc,stats] observed pacing delays may be higher than the threshold when paced thread spent more [284.853s][info][gc,stats] time in the pacing code. It usually happens when thread is de-scheduled while paced, [284.853s][info][gc,stats] OS takes longer to unblock the thread, or JVM experiences an STW pause. [284.853s][info][gc,stats] [284.853s][info][gc,stats] [284.853s][info][gc,stats] [284.853s][info][gc,stats] Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. # Run progress: 33.33% complete, ETA 00:09:29 # Fork: 2 of 3 # Warmup Iteration 1: 52.549 ops/min # Warmup Iteration 2: 67.286 ops/min # Warmup Iteration 3: 91.554 ops/min # Warmup Iteration 4: 92.078 ops/min # Warmup Iteration 5: 105.522 ops/min # Warmup Iteration 6: 97.859 ops/min # Warmup Iteration 7: 109.265 ops/min # Warmup Iteration 8: 106.436 ops/min # Warmup Iteration 9: 100.043 ops/min # Warmup Iteration 10: 100.911 ops/min Iteration 1: 104.786 ops/min Iteration 2: 93.815 ops/min Iteration 3: 108.824 ops/min Iteration 4: 85.749 ops/min Iteration 5: 102.814 ops/min Iteration 6: 106.637 ops/min Iteration 7: 112.392 ops/min Iteration 8: 110.443 ops/min Iteration 9: 104.867 ops/min Iteration 10: 110.013 ops/min [287.338s][info][gc,stats] [287.338s][info][gc,stats] GC STATISTICS: [287.338s][info][gc,stats] "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- [287.338s][info][gc,stats] and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. [287.338s][info][gc,stats] "(N)" (net) pauses are the times spent in the actual GC code. [287.338s][info][gc,stats] "a" is average time for each phase, look at levels to see if average makes sense. [287.338s][info][gc,stats] "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). [287.338s][info][gc,stats] [287.338s][info][gc,stats] Total Pauses (G) = 4.36 s (a = 1222 us) (n = 3573) (lvls, us = 146, 436, 826, 1211, 27076) [287.338s][info][gc,stats] Total Pauses (N) = 2.21 s (a = 618 us) (n = 3573) (lvls, us = 3, 32, 498, 859, 22987) [287.338s][info][gc,stats] Pause Init Mark (G) = 1.06 s (a = 991 us) (n = 1074) (lvls, us = 514, 762, 838, 943, 12340) [287.338s][info][gc,stats] Pause Init Mark (N) = 0.60 s (a = 559 us) (n = 1074) (lvls, us = 326, 469, 527, 586, 4161) [287.338s][info][gc,stats] Make Parsable = 0.01 s (a = 5 us) (n = 1074) (lvls, us = 3, 4, 5, 5, 28) [287.338s][info][gc,stats] Clear Liveness = 0.09 s (a = 87 us) (n = 1074) (lvls, us = 39, 64, 78, 102, 272) [287.338s][info][gc,stats] Scan Roots = 0.48 s (a = 450 us) (n = 1074) (lvls, us = 242, 369, 428, 479, 4081) [287.338s][info][gc,stats] S: Thread Roots = 0.05 s (a = 45 us) (n = 1074) (lvls, us = 22, 36, 41, 46, 531) [287.338s][info][gc,stats] S: Universe Roots = 0.00 s (a = 2 us) (n = 1074) (lvls, us = 1, 2, 2, 2, 9) [287.338s][info][gc,stats] S: JNI Roots = 0.00 s (a = 2 us) (n = 1074) (lvls, us = 1, 1, 2, 2, 15) [287.338s][info][gc,stats] S: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 1074) (lvls, us = 0, 0, 0, 0, 2) [287.338s][info][gc,stats] S: JFR Weak Roots = 0.00 s (a = 0 us) (n = 1074) (lvls, us = 0, 0, 0, 1, 25) [287.338s][info][gc,stats] S: JNI Weak Roots = 0.00 s (a = 0 us) (n = 1074) (lvls, us = 0, 0, 0, 0, 2) [287.338s][info][gc,stats] S: String Table Roots = 0.06 s (a = 55 us) (n = 1074) (lvls, us = 0, 30, 69, 80, 282) [287.338s][info][gc,stats] S: VM Weak Roots = 0.01 s (a = 11 us) (n = 1074) (lvls, us = 0, 7, 13, 14, 125) [287.338s][info][gc,stats] S: Synchronizer Roots = 0.00 s (a = 0 us) (n = 1074) (lvls, us = 0, 0, 0, 0, 1) [287.338s][info][gc,stats] S: Management Roots = 0.00 s (a = 1 us) (n = 1074) (lvls, us = 1, 1, 1, 1, 19) [287.339s][info][gc,stats] S: System Dict Roots = 0.01 s (a = 9 us) (n = 1074) (lvls, us = 4, 6, 9, 10, 41) [287.339s][info][gc,stats] S: CLDG Roots = 0.13 s (a = 120 us) (n = 1074) (lvls, us = 55, 99, 119, 131, 578) [287.339s][info][gc,stats] S: JVMTI Roots = 0.00 s (a = 1 us) (n = 1074) (lvls, us = 0, 0, 1, 1, 3) [287.339s][info][gc,stats] Resize TLABs = 0.00 s (a = 2 us) (n = 1074) (lvls, us = 1, 1, 2, 2, 17) [287.339s][info][gc,stats] Pause Final Mark (G) = 2.42 s (a = 2251 us) (n = 1074) (lvls, us = 564, 1133, 1348, 1992, 27076) [287.339s][info][gc,stats] Pause Final Mark (N) = 1.45 s (a = 1354 us) (n = 1074) (lvls, us = 459, 879, 1035, 1543, 22986) [287.339s][info][gc,stats] Update Roots = 0.22 s (a = 300 us) (n = 718) (lvls, us = 211, 260, 281, 311, 974) [287.339s][info][gc,stats] U: Thread Roots = 0.02 s (a = 34 us) (n = 718) (lvls, us = 21, 29, 32, 36, 161) [287.339s][info][gc,stats] U: Universe Roots = 0.00 s (a = 1 us) (n = 718) (lvls, us = 0, 1, 1, 1, 6) [287.339s][info][gc,stats] U: JNI Roots = 0.00 s (a = 1 us) (n = 718) (lvls, us = 0, 1, 1, 1, 8) [287.339s][info][gc,stats] U: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 718) (lvls, us = 0, 0, 0, 0, 2) [287.339s][info][gc,stats] U: JFR Weak Roots = 0.00 s (a = 0 us) (n = 718) (lvls, us = 0, 0, 0, 1, 3) [287.339s][info][gc,stats] U: JNI Weak Roots = 0.00 s (a = 0 us) (n = 718) (lvls, us = 0, 0, 0, 0, 3) [287.339s][info][gc,stats] U: String Table Roots = 0.01 s (a = 14 us) (n = 718) (lvls, us = 11, 12, 13, 14, 69) [287.339s][info][gc,stats] U: VM Weak Roots = 0.00 s (a = 3 us) (n = 718) (lvls, us = 3, 3, 3, 3, 12) [287.339s][info][gc,stats] U: Synchronizer Roots = 0.00 s (a = 0 us) (n = 718) (lvls, us = 0, 0, 0, 0, 1) [287.339s][info][gc,stats] U: Management Roots = 0.00 s (a = 1 us) (n = 718) (lvls, us = 1, 1, 1, 1, 6) [287.339s][info][gc,stats] U: System Dict Roots = 0.00 s (a = 5 us) (n = 718) (lvls, us = 3, 4, 4, 5, 24) [287.339s][info][gc,stats] U: CLDG Roots = 0.05 s (a = 73 us) (n = 718) (lvls, us = 29, 58, 73, 88, 226) [287.339s][info][gc,stats] U: JVMTI Roots = 0.00 s (a = 1 us) (n = 718) (lvls, us = 0, 0, 0, 1, 6) [287.339s][info][gc,stats] Finish Queues = 0.28 s (a = 258 us) (n = 1074) (lvls, us = 58, 104, 137, 205, 12980) [287.339s][info][gc,stats] Weak References = 0.18 s (a = 830 us) (n = 215) (lvls, us = 225, 273, 395, 1309, 6119) [287.339s][info][gc,stats] Process = 0.18 s (a = 823 us) (n = 215) (lvls, us = 221, 268, 383, 1289, 6111) [287.339s][info][gc,stats] Complete Liveness = 0.06 s (a = 54 us) (n = 1074) (lvls, us = 25, 38, 47, 60, 270) [287.339s][info][gc,stats] Prepare Evacuation = 0.30 s (a = 280 us) (n = 1074) (lvls, us = 74, 229, 270, 303, 1042) [287.339s][info][gc,stats] Initial Evacuation = 0.41 s (a = 383 us) (n = 1072) (lvls, us = 107, 230, 256, 299, 3825) [287.339s][info][gc,stats] E: Thread Roots = 0.04 s (a = 33 us) (n = 1072) (lvls, us = 15, 24, 27, 31, 2566) [287.339s][info][gc,stats] E: Code Cache Roots = 0.21 s (a = 193 us) (n = 1072) (lvls, us = 18, 113, 125, 141, 1642) [287.339s][info][gc,stats] E: JVMTI Roots = 0.00 s (a = 0 us) (n = 1072) (lvls, us = 0, 0, 0, 0, 3) [287.339s][info][gc,stats] Pause Final Evac (G) = 0.39 s (a = 542 us) (n = 719) (lvls, us = 162, 242, 279, 357, 18270) [287.339s][info][gc,stats] Pause Final Evac (N) = 0.01 s (a = 9 us) (n = 719) (lvls, us = 3, 5, 6, 8, 41) [287.339s][info][gc,stats] Pause Init Update Refs (G) = 0.20 s (a = 560 us) (n = 353) (lvls, us = 146, 271, 309, 398, 13542) [287.339s][info][gc,stats] Pause Init Update Refs (N) = 0.01 s (a = 37 us) (n = 353) (lvls, us = 20, 29, 31, 38, 146) [287.339s][info][gc,stats] Pause Final Update Refs (G) = 0.29 s (a = 828 us) (n = 353) (lvls, us = 363, 570, 645, 729, 10151) [287.339s][info][gc,stats] Pause Final Update Refs (N) = 0.13 s (a = 381 us) (n = 353) (lvls, us = 260, 312, 354, 395, 1251) [287.339s][info][gc,stats] Update Roots = 0.11 s (a = 308 us) (n = 353) (lvls, us = 203, 250, 289, 316, 1184) [287.339s][info][gc,stats] UR: Thread Roots = 0.01 s (a = 35 us) (n = 353) (lvls, us = 18, 27, 30, 34, 228) [287.339s][info][gc,stats] UR: Universe Roots = 0.00 s (a = 1 us) (n = 353) (lvls, us = 0, 1, 1, 1, 6) [287.339s][info][gc,stats] UR: JNI Roots = 0.00 s (a = 1 us) (n = 353) (lvls, us = 0, 1, 1, 1, 7) [287.339s][info][gc,stats] UR: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 353) (lvls, us = 0, 0, 0, 0, 2) [287.339s][info][gc,stats] UR: JFR Weak Roots = 0.00 s (a = 0 us) (n = 353) (lvls, us = 0, 0, 0, 0, 5) [287.339s][info][gc,stats] UR: JNI Weak Roots = 0.00 s (a = 0 us) (n = 353) (lvls, us = 0, 0, 0, 0, 2) [287.339s][info][gc,stats] UR: String Table Roots = 0.00 s (a = 14 us) (n = 353) (lvls, us = 10, 12, 13, 14, 46) [287.339s][info][gc,stats] UR: VM Weak Roots = 0.00 s (a = 3 us) (n = 353) (lvls, us = 2, 3, 3, 3, 10) [287.339s][info][gc,stats] UR: Synchronizer Roots = 0.00 s (a = 0 us) (n = 353) (lvls, us = 0, 0, 0, 0, 0) [287.339s][info][gc,stats] UR: Management Roots = 0.00 s (a = 1 us) (n = 353) (lvls, us = 1, 1, 1, 1, 11) [287.339s][info][gc,stats] UR: System Dict Roots = 0.00 s (a = 5 us) (n = 353) (lvls, us = 3, 4, 4, 5, 32) [287.339s][info][gc,stats] UR: CLDG Roots = 0.02 s (a = 67 us) (n = 353) (lvls, us = 28, 52, 66, 80, 217) [287.339s][info][gc,stats] UR: JVMTI Roots = 0.00 s (a = 1 us) (n = 353) (lvls, us = 0, 0, 0, 1, 4) [287.339s][info][gc,stats] Recycle = 0.02 s (a = 65 us) (n = 353) (lvls, us = 47, 52, 59, 69, 194) [287.339s][info][gc,stats] Concurrent Reset = 0.72 s (a = 668 us) (n = 1074) (lvls, us = 139, 436, 477, 561, 56422) [287.339s][info][gc,stats] Concurrent Marking = 111.96 s (a = 104250 us) (n = 1074) (lvls, us = 9609, 87891, 101562, 117188, 233997) [287.339s][info][gc,stats] Concurrent Precleaning = 0.76 s (a = 3521 us) (n = 215) (lvls, us = 100, 926, 1641, 2734, 35845) [287.339s][info][gc,stats] Concurrent Evacuation = 14.17 s (a = 13218 us) (n = 1072) (lvls, us = 629, 5488, 11914, 18750, 50928) [287.339s][info][gc,stats] Concurrent Update Refs = 31.47 s (a = 89160 us) (n = 353) (lvls, us = 10156, 73438, 87500, 103516, 153006) [287.339s][info][gc,stats] Concurrent Cleanup = 0.32 s (a = 225 us) (n = 1427) (lvls, us = 133, 164, 203, 234, 4842) [287.339s][info][gc,stats] [287.339s][info][gc,stats] [287.339s][info][gc,stats] Under allocation pressure, concurrent cycles may cancel, and either continue cycle [287.339s][info][gc,stats] under stop-the-world pause or result in stop-the-world Full GC. Increase heap size, [287.339s][info][gc,stats] tune GC heuristics, set more aggressive pacing delay, or lower allocation rate [287.339s][info][gc,stats] to avoid Degenerated and Full GC cycles. [287.339s][info][gc,stats] [287.339s][info][gc,stats] 1074 successful concurrent GCs [287.339s][info][gc,stats] 0 invoked explicitly [287.339s][info][gc,stats] 0 invoked implicitly [287.339s][info][gc,stats] [287.339s][info][gc,stats] 0 Degenerated GCs [287.339s][info][gc,stats] 0 caused by allocation failure [287.339s][info][gc,stats] 0 upgraded to Full GC [287.339s][info][gc,stats] [287.339s][info][gc,stats] 0 Full GCs [287.339s][info][gc,stats] 0 invoked explicitly [287.339s][info][gc,stats] 0 invoked implicitly [287.339s][info][gc,stats] 0 caused by allocation failure [287.339s][info][gc,stats] 0 upgraded from Degenerated GC [287.339s][info][gc,stats] [287.339s][info][gc,stats] [287.339s][info][gc,stats] ALLOCATION PACING: [287.339s][info][gc,stats] [287.339s][info][gc,stats] Max pacing delay is set for 10 ms. [287.339s][info][gc,stats] [287.339s][info][gc,stats] Higher delay would prevent application outpacing the GC, but it will hide the GC latencies [287.339s][info][gc,stats] from the STW pause times. Pacing affects the individual threads, and so it would also be [287.339s][info][gc,stats] invisible to the usual profiling tools, but would add up to end-to-end application latency. [287.339s][info][gc,stats] Raise max pacing delay with care. [287.339s][info][gc,stats] [287.339s][info][gc,stats] Actual pacing delays histogram: [287.339s][info][gc,stats] [287.339s][info][gc,stats] From - To Count Sum [287.339s][info][gc,stats] 1 ms - 2 ms: 816 408 ms [287.339s][info][gc,stats] 2 ms - 4 ms: 1038 1038 ms [287.339s][info][gc,stats] 4 ms - 8 ms: 1711 3422 ms [287.339s][info][gc,stats] 8 ms - 16 ms: 37541 150164 ms [287.339s][info][gc,stats] 16 ms - 32 ms: 2688 21504 ms [287.339s][info][gc,stats] 32 ms - 64 ms: 97 1552 ms [287.339s][info][gc,stats] Total: 43891 178088 ms [287.339s][info][gc,stats] [287.339s][info][gc,stats] Pacing delays are measured from entering the pacing code till exiting it. Therefore, [287.339s][info][gc,stats] observed pacing delays may be higher than the threshold when paced thread spent more [287.339s][info][gc,stats] time in the pacing code. It usually happens when thread is de-scheduled while paced, [287.339s][info][gc,stats] OS takes longer to unblock the thread, or JVM experiences an STW pause. [287.339s][info][gc,stats] [287.339s][info][gc,stats] [287.339s][info][gc,stats] [287.339s][info][gc,stats] Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. # Run progress: 66.67% complete, ETA 00:04:46 # Fork: 3 of 3 # Warmup Iteration 1: 45.709 ops/min # Warmup Iteration 2: 60.696 ops/min # Warmup Iteration 3: 89.262 ops/min # Warmup Iteration 4: 98.217 ops/min # Warmup Iteration 5: 102.443 ops/min # Warmup Iteration 6: 108.970 ops/min # Warmup Iteration 7: 108.122 ops/min # Warmup Iteration 8: 105.009 ops/min # Warmup Iteration 9: 107.517 ops/min # Warmup Iteration 10: 104.100 ops/min Iteration 1: 109.438 ops/min Iteration 2: 97.535 ops/min Iteration 3: 107.744 ops/min Iteration 4: 108.507 ops/min Iteration 5: 102.178 ops/min Iteration 6: 106.294 ops/min Iteration 7: 108.352 ops/min Iteration 8: 105.090 ops/min Iteration 9: 108.718 ops/min Iteration 10: 110.268 ops/min [282.806s][info][gc,stats] [282.806s][info][gc,stats] GC STATISTICS: [282.806s][info][gc,stats] "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- [282.806s][info][gc,stats] and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. [282.806s][info][gc,stats] "(N)" (net) pauses are the times spent in the actual GC code. [282.806s][info][gc,stats] "a" is average time for each phase, look at levels to see if average makes sense. [282.806s][info][gc,stats] "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). [282.806s][info][gc,stats] [282.806s][info][gc,stats] Total Pauses (G) = 4.36 s (a = 1224 us) (n = 3559) (lvls, us = 72, 416, 814, 1211, 18149) [282.806s][info][gc,stats] Total Pauses (N) = 2.15 s (a = 603 us) (n = 3559) (lvls, us = 4, 32, 486, 848, 11755) [282.806s][info][gc,stats] Pause Init Mark (G) = 1.05 s (a = 985 us) (n = 1069) (lvls, us = 537, 748, 822, 939, 12349) [282.806s][info][gc,stats] Pause Init Mark (N) = 0.60 s (a = 557 us) (n = 1069) (lvls, us = 303, 457, 514, 574, 5125) [282.806s][info][gc,stats] Make Parsable = 0.01 s (a = 5 us) (n = 1069) (lvls, us = 3, 4, 4, 5, 42) [282.806s][info][gc,stats] Clear Liveness = 0.09 s (a = 86 us) (n = 1069) (lvls, us = 41, 64, 76, 99, 412) [282.806s][info][gc,stats] Scan Roots = 0.48 s (a = 450 us) (n = 1069) (lvls, us = 234, 355, 414, 469, 5009) [282.806s][info][gc,stats] S: Thread Roots = 0.05 s (a = 45 us) (n = 1069) (lvls, us = 20, 37, 40, 45, 489) [282.806s][info][gc,stats] S: Universe Roots = 0.00 s (a = 2 us) (n = 1069) (lvls, us = 1, 2, 2, 2, 22) [282.806s][info][gc,stats] S: JNI Roots = 0.00 s (a = 2 us) (n = 1069) (lvls, us = 1, 1, 2, 2, 23) [282.806s][info][gc,stats] S: JVMTI Weak Roots = 0.00 s (a = 0 us) (n = 1069) (lvls, us = 0, 0, 0, 1, 7) [282.806s][info][gc,stats] S: JFR Weak Roots = 0.00 s (a = 0 us) (n = 1069) (lvls, us = 0, 0, 0, 1, 7) [282.806s][info][gc,stats] S: JNI Weak Roots = 0.00 s (a = 0 us) (n = 1069) (lvls, us = 0, 0, 0, 0, 2) [282.806s][info][gc,stats] S: String Table Roots = 0.06 s (a = 58 us) (n = 1069) (lvls, us = 0, 31, 71, 82, 653) [282.806s][info][gc,stats] S: VM Weak Roots = 0.01 s (a = 10 us) (n = 1069) (lvls, us = 0, 7, 13, 14, 63) [282.806s][info][gc,stats] S: Synchronizer Roots = 0.00 s (a = 0 us) (n = 1069) (lvls, us = 0, 0, 0, 0, 2) [282.806s][info][gc,stats] S: Management Roots = 0.00 s (a = 1 us) (n = 1069) (lvls, us = 1, 1, 1, 1, 19) [282.806s][info][gc,stats] S: System Dict Roots = 0.01 s (a = 9 us) (n = 1069) (lvls, us = 4, 6, 9, 10, 39) [282.806s][info][gc,stats] S: CLDG Roots = 0.12 s (a = 116 us) (n = 1069) (lvls, us = 57, 95, 115, 127, 342) [282.806s][info][gc,stats] S: JVMTI Roots = 0.00 s (a = 1 us) (n = 1069) (lvls, us = 0, 0, 0, 1, 44) [282.806s][info][gc,stats] Resize TLABs = 0.00 s (a = 2 us) (n = 1069) (lvls, us = 1, 1, 1, 2, 19) [282.806s][info][gc,stats] Pause Final Mark (G) = 2.34 s (a = 2190 us) (n = 1069) (lvls, us = 588, 1113, 1309, 1953, 18148) [282.806s][info][gc,stats] Pause Final Mark (N) = 1.40 s (a = 1310 us) (n = 1069) (lvls, us = 408, 863, 996, 1484, 11753) [282.806s][info][gc,stats] Update Roots = 0.21 s (a = 289 us) (n = 716) (lvls, us = 207, 252, 270, 295, 870) [282.806s][info][gc,stats] U: Thread Roots = 0.02 s (a = 34 us) (n = 716) (lvls, us = 17, 29, 32, 35, 114) [282.806s][info][gc,stats] U: Universe Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 1, 1, 1, 1, 6) [282.806s][info][gc,stats] U: JNI Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 0, 1, 1, 1, 5) [282.806s][info][gc,stats] U: JVMTI Weak Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 0, 0, 0, 1, 4) [282.806s][info][gc,stats] U: JFR Weak Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 0, 0, 0, 1, 3) [282.806s][info][gc,stats] U: JNI Weak Roots = 0.00 s (a = 0 us) (n = 716) (lvls, us = 0, 0, 0, 0, 2) [282.806s][info][gc,stats] U: String Table Roots = 0.01 s (a = 14 us) (n = 716) (lvls, us = 8, 13, 13, 14, 49) [282.806s][info][gc,stats] U: VM Weak Roots = 0.00 s (a = 3 us) (n = 716) (lvls, us = 2, 3, 3, 3, 22) [282.806s][info][gc,stats] U: Synchronizer Roots = 0.00 s (a = 0 us) (n = 716) (lvls, us = 0, 0, 0, 0, 5) [282.806s][info][gc,stats] U: Management Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 1, 1, 1, 1, 11) [282.806s][info][gc,stats] U: System Dict Roots = 0.00 s (a = 5 us) (n = 716) (lvls, us = 3, 4, 4, 5, 22) [282.806s][info][gc,stats] U: CLDG Roots = 0.05 s (a = 68 us) (n = 716) (lvls, us = 31, 53, 69, 84, 168) [282.806s][info][gc,stats] U: JVMTI Roots = 0.00 s (a = 1 us) (n = 716) (lvls, us = 0, 0, 0, 1, 13) [282.806s][info][gc,stats] Finish Queues = 0.26 s (a = 248 us) (n = 1069) (lvls, us = 46, 102, 137, 203, 4767) [282.806s][info][gc,stats] Weak References = 0.18 s (a = 842 us) (n = 214) (lvls, us = 217, 271, 385, 1348, 6874) [282.806s][info][gc,stats] Process = 0.18 s (a = 837 us) (n = 214) (lvls, us = 213, 268, 381, 1348, 6864) [282.806s][info][gc,stats] Complete Liveness = 0.06 s (a = 53 us) (n = 1069) (lvls, us = 24, 38, 45, 58, 199) [282.806s][info][gc,stats] Prepare Evacuation = 0.30 s (a = 279 us) (n = 1069) (lvls, us = 113, 227, 266, 301, 1193) [282.806s][info][gc,stats] Initial Evacuation = 0.38 s (a = 355 us) (n = 1069) (lvls, us = 125, 221, 248, 287, 2393) [282.806s][info][gc,stats] E: Thread Roots = 0.03 s (a = 31 us) (n = 1069) (lvls, us = 14, 23, 26, 30, 279) [282.806s][info][gc,stats] E: Code Cache Roots = 0.20 s (a = 184 us) (n = 1069) (lvls, us = 11, 111, 123, 141, 1152) [282.806s][info][gc,stats] E: JVMTI Roots = 0.00 s (a = 0 us) (n = 1069) (lvls, us = 0, 0, 0, 0, 3) [282.806s][info][gc,stats] Pause Final Evac (G) = 0.50 s (a = 700 us) (n = 717) (lvls, us = 85, 240, 277, 350, 17662) [282.806s][info][gc,stats] Pause Final Evac (N) = 0.01 s (a = 8 us) (n = 717) (lvls, us = 4, 5, 6, 7, 31) [282.806s][info][gc,stats] Pause Init Update Refs (G) = 0.19 s (a = 531 us) (n = 352) (lvls, us = 71, 260, 301, 385, 9297) [282.806s][info][gc,stats] Pause Init Update Refs (N) = 0.01 s (a = 37 us) (n = 352) (lvls, us = 19, 29, 31, 38, 186) [282.806s][info][gc,stats] Pause Final Update Refs (G) = 0.27 s (a = 771 us) (n = 352) (lvls, us = 449, 570, 625, 711, 5476) [282.806s][info][gc,stats] Pause Final Update Refs (N) = 0.13 s (a = 371 us) (n = 352) (lvls, us = 254, 303, 338, 389, 1052) [282.806s][info][gc,stats] Update Roots = 0.10 s (a = 295 us) (n = 352) (lvls, us = 201, 238, 270, 312, 752) [282.806s][info][gc,stats] UR: Thread Roots = 0.01 s (a = 34 us) (n = 352) (lvls, us = 18, 27, 30, 35, 178) [282.806s][info][gc,stats] UR: Universe Roots = 0.00 s (a = 1 us) (n = 352) (lvls, us = 0, 1, 1, 1, 8) [282.806s][info][gc,stats] UR: JNI Roots = 0.00 s (a = 1 us) (n = 352) (lvls, us = 0, 1, 1, 1, 9) [282.806s][info][gc,stats] UR: JVMTI Weak Roots = 0.00 s (a = 1 us) (n = 352) (lvls, us = 0, 0, 0, 1, 2) [282.806s][info][gc,stats] UR: JFR Weak Roots = 0.00 s (a = 0 us) (n = 352) (lvls, us = 0, 0, 0, 0, 2) [282.806s][info][gc,stats] UR: JNI Weak Roots = 0.00 s (a = 0 us) (n = 352) (lvls, us = 0, 0, 0, 0, 1) [282.806s][info][gc,stats] UR: String Table Roots = 0.00 s (a = 14 us) (n = 352) (lvls, us = 10, 12, 13, 14, 34) [282.806s][info][gc,stats] UR: VM Weak Roots = 0.00 s (a = 3 us) (n = 352) (lvls, us = 2, 3, 3, 3, 13) [282.806s][info][gc,stats] UR: Synchronizer Roots = 0.00 s (a = 0 us) (n = 352) (lvls, us = 0, 0, 0, 0, 0) [282.806s][info][gc,stats] UR: Management Roots = 0.00 s (a = 1 us) (n = 352) (lvls, us = 1, 1, 1, 1, 4) [282.806s][info][gc,stats] UR: System Dict Roots = 0.00 s (a = 5 us) (n = 352) (lvls, us = 3, 4, 4, 5, 40) [282.806s][info][gc,stats] UR: CLDG Roots = 0.02 s (a = 63 us) (n = 352) (lvls, us = 28, 47, 61, 76, 155) [282.806s][info][gc,stats] UR: JVMTI Roots = 0.00 s (a = 0 us) (n = 352) (lvls, us = 0, 0, 0, 0, 2) [282.806s][info][gc,stats] Recycle = 0.02 s (a = 68 us) (n = 352) (lvls, us = 46, 52, 59, 69, 270) [282.806s][info][gc,stats] Concurrent Reset = 0.73 s (a = 682 us) (n = 1069) (lvls, us = 137, 436, 479, 545, 69118) [282.806s][info][gc,stats] Concurrent Marking = 110.24 s (a = 103121 us) (n = 1069) (lvls, us = 7188, 86328, 99609, 111328, 311168) [282.806s][info][gc,stats] Concurrent Precleaning = 0.67 s (a = 3129 us) (n = 214) (lvls, us = 137, 748, 1602, 2656, 44450) [282.806s][info][gc,stats] Concurrent Evacuation = 13.81 s (a = 12919 us) (n = 1069) (lvls, us = 637, 4727, 11133, 18164, 57782) [282.806s][info][gc,stats] Concurrent Update Refs = 31.15 s (a = 88508 us) (n = 352) (lvls, us = 6426, 73047, 86719, 99609, 175955) [282.806s][info][gc,stats] Concurrent Cleanup = 0.31 s (a = 218 us) (n = 1421) (lvls, us = 133, 166, 205, 234, 3207) [282.806s][info][gc,stats] [282.806s][info][gc,stats] [282.806s][info][gc,stats] Under allocation pressure, concurrent cycles may cancel, and either continue cycle [282.806s][info][gc,stats] under stop-the-world pause or result in stop-the-world Full GC. Increase heap size, [282.806s][info][gc,stats] tune GC heuristics, set more aggressive pacing delay, or lower allocation rate [282.806s][info][gc,stats] to avoid Degenerated and Full GC cycles. [282.806s][info][gc,stats] [282.806s][info][gc,stats] 1069 successful concurrent GCs [282.806s][info][gc,stats] 0 invoked explicitly [282.806s][info][gc,stats] 0 invoked implicitly [282.806s][info][gc,stats] [282.806s][info][gc,stats] 0 Degenerated GCs [282.806s][info][gc,stats] 0 caused by allocation failure [282.806s][info][gc,stats] 0 upgraded to Full GC [282.806s][info][gc,stats] [282.806s][info][gc,stats] 0 Full GCs [282.806s][info][gc,stats] 0 invoked explicitly [282.806s][info][gc,stats] 0 invoked implicitly [282.806s][info][gc,stats] 0 caused by allocation failure [282.806s][info][gc,stats] 0 upgraded from Degenerated GC [282.806s][info][gc,stats] [282.806s][info][gc,stats] [282.806s][info][gc,stats] ALLOCATION PACING: [282.806s][info][gc,stats] [282.806s][info][gc,stats] Max pacing delay is set for 10 ms. [282.806s][info][gc,stats] [282.806s][info][gc,stats] Higher delay would prevent application outpacing the GC, but it will hide the GC latencies [282.806s][info][gc,stats] from the STW pause times. Pacing affects the individual threads, and so it would also be [282.806s][info][gc,stats] invisible to the usual profiling tools, but would add up to end-to-end application latency. [282.806s][info][gc,stats] Raise max pacing delay with care. [282.806s][info][gc,stats] [282.806s][info][gc,stats] Actual pacing delays histogram: [282.806s][info][gc,stats] [282.806s][info][gc,stats] From - To Count Sum [282.806s][info][gc,stats] 1 ms - 2 ms: 793 396 ms [282.806s][info][gc,stats] 2 ms - 4 ms: 1074 1074 ms [282.806s][info][gc,stats] 4 ms - 8 ms: 1732 3464 ms [282.806s][info][gc,stats] 8 ms - 16 ms: 37028 148112 ms [282.806s][info][gc,stats] 16 ms - 32 ms: 2651 21208 ms [282.806s][info][gc,stats] 32 ms - 64 ms: 106 1696 ms [282.806s][info][gc,stats] 64 ms - 128 ms: 1 32 ms [282.806s][info][gc,stats] Total: 43385 175982 ms [282.806s][info][gc,stats] [282.806s][info][gc,stats] Pacing delays are measured from entering the pacing code till exiting it. Therefore, [282.806s][info][gc,stats] observed pacing delays may be higher than the threshold when paced thread spent more [282.806s][info][gc,stats] time in the pacing code. It usually happens when thread is de-scheduled while paced, [282.806s][info][gc,stats] OS takes longer to unblock the thread, or JVM experiences an STW pause. [282.806s][info][gc,stats] [282.806s][info][gc,stats] [282.806s][info][gc,stats] [282.806s][info][gc,stats] Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. Result "compiler": 105.408 ±(99.9%) 3.913 ops/min [Average] (min, avg, max) = (85.749, 105.408, 113.156), stdev = 5.856 CI (99.9%): [101.495, 109.321] (assumes normal distribution) # Run complete. Total time: 00:14:15 Benchmark Mode Cnt Score Error Units Compiler.compiler thrpt 30 105.408 ± 3.913 ops/min