线程停止时间
总是接近弱引用处理时间。所有其他GC周期为0.0001秒到0.200秒。
10388.186: [GC[YG occupancy: 206547 K (306688 K)]10388.186: [Rescan (parallel) ,
0.1095860 secs]10388.295: [weak refs processing, 2.0799570 secs]
[1 CMS-remark: 2973838K(3853568K)] 3180386K(4160256K), 2.1899230 secs]
[Times: user=2.51 sys=0.00, real=2.18 secs]
Total time for which application threads were stopped: 2.1906890 seconds
目前我有这些设置到位。尝试了更简单的设置,但没有改变。
-Xms4g
-Xmx4g
-XX:NewSize=128m
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:MaxGCPauseMillis=50
-XX:CMSInitiatingOccupancyFraction=50
-XX:ParallelGCThreads=16
-XX:+DisableExplicitGC
如果我打开NewSize,我会得到很长的正常GC周期。这台机器有8个内核,不会为应用程序消耗那么多cpu。试图尽早并同时运行旧的gen GC。
是的,我无法摆脱弱ref用法,因为这是第三方库的一部分。