chewiebug / GCViewer

Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)
https://github.com/chewiebug/GCViewer/wiki
Other
4.47k stars 979 forks source link

enhance support for zgc and shenandoah #261

Closed CuiWeiloong closed 1 year ago

CuiWeiloong commented 2 years ago

The latest GCViewer failed to parse some gc events of ZGC and ShenandoahGC. I fixed some bugs and added some gc event types in this PR.

  1. The event "Metaspace" in gc tag "[gc,metaspace]" don't match the "PATTERN_MEMORY" rules for ZGC and don't have GC number for Shenandoah, ignored in "DataReaderUnifiedJvmLogging.java:handleTagGcMetaspaceTail()" method.
    // ZGC:
    //  [1.182s][info][gc,metaspace] GC(0) Metaspace: 19M used, 19M capacity, 19M committed, 20M reserved
    //  [1.182s][info][gc,metaspace] GC(0) Metaspace: 11M used, 12M committed, 1088M reserved
    // G1:
    //  [5.537s][info][gc,metaspace] GC(0) Metaspace: 118K(320K)->118K(320K) NonClass: 113K(192K)->113K(192K) Class: 4K(128K)->4K(128K
    // Shenandoah:
    // [5.063s][info][gc,metaspace] Metaspace: 13104K(13376K)->13192K(13440K) NonClass: 1345K(11456K)->11431K(11520K) Class: 1758K(1920K)->1761K(1920K)
  2. [gc,heap] -> Unknown gc type for ZGC: Excludes all lines that do not contain Capacity.
    [1.182s][info][gc,metaspace] GC(0) Metaspace: 19M used, 19M capacity, 19M committed, 20M reserved
    [1.182s][info][gc,heap     ] GC(0)                Mark Start          Mark End        Relocate Start      Relocate End           High               Low    
    [1.182s][info][gc,heap     ] GC(0)  Capacity:      448M (11%)         452M (11%)         454M (11%)         454M (11%)         454M (11%)         448M (11%)        
    [1.182s][info][gc,heap     ] GC(0)   Reserve:       48M (1%)           48M (1%)           48M (1%)           48M (1%)           48M (1%)           48M (1%)         
    [1.182s][info][gc,heap     ] GC(0)      Free:     3506M (89%)        3502M (89%)        3758M (95%)        3874M (98%)        3874M (98%)        3500M (89%)        
    [1.182s][info][gc,heap     ] GC(0)      Used:      400M (10%)         404M (10%)         148M (4%)           32M (1%)          406M (10%)          32M (1%)         
    [1.182s][info][gc,heap     ] GC(0)      Live:         -                 6M (0%)            6M (0%)            6M (0%)             -                  -              
    [1.182s][info][gc,heap     ] GC(0) Allocated:         -                 4M (0%)           10M (0%)           32M (1%)             -                  -              
    [1.182s][info][gc,heap     ] GC(0)   Garbage:         -               393M (10%)         131M (3%)           13M (0%)             -                  -              
    [1.182s][info][gc,heap     ] GC(0) Reclaimed:         -                  -               262M (7%)          380M (10%)            -                  -              
  3. Add new gc events "Concurrent Mark Free,Allocation Stall,Relocation Stall" for ZGC.
  4. Update some gc events that contain wrong GcPattern for ShenandoahGC.
  5. Add percentiles data to output csv file.
  6. Add "[gc,init" to LOG_ONLY_STRINGS.

Please review this PR.

Thanks, Weilong Cui

codecov-commenter commented 2 years ago

Codecov Report

Merging #261 (e76f8a7) into develop (d74690e) will increase coverage by 0.20%. The diff coverage is 97.24%.

@@              Coverage Diff              @@
##             develop     #261      +/-   ##
=============================================
+ Coverage      70.44%   70.65%   +0.20%     
- Complexity      1536     1553      +17     
=============================================
  Files            146      146              
  Lines           8680     8769      +89     
  Branches        1405     1419      +14     
=============================================
+ Hits            6115     6196      +81     
- Misses          1973     1980       +7     
- Partials         592      593       +1     
Impacted Files Coverage Δ
...om/tagtraum/perf/gcviewer/imp/DataReaderTools.java 82.05% <ø> (ø)
...perf/gcviewer/imp/DataReaderUnifiedJvmLogging.java 81.40% <66.66%> (-0.46%) :arrow_down:
.../tagtraum/perf/gcviewer/model/AbstractGCEvent.java 86.47% <96.00%> (+0.39%) :arrow_up:
...raum/perf/gcviewer/exp/impl/SummaryDataWriter.java 90.63% <100.00%> (+2.42%) :arrow_up:
...tagtraum/perf/gcviewer/imp/DataReaderSun1_6_0.java 88.53% <100.00%> (-1.53%) :arrow_down:
...traum/perf/gcviewer/math/DoubleDataPercentile.java 68.42% <100.00%> (+1.75%) :arrow_up:
...java/com/tagtraum/perf/gcviewer/model/GCModel.java 86.37% <100.00%> (ø)
...gtraum/perf/gcviewer/ctrl/impl/GcSeriesLoader.java 74.15% <0.00%> (-2.25%) :arrow_down:
...va/com/tagtraum/perf/gcviewer/view/GCDocument.java 34.93% <0.00%> (+0.96%) :arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

xiangzhai commented 2 years ago

PING @chewiebug

xiangzhai commented 2 years ago

PING @chewiebug