diff --git a/api/src/main/java/com/microsoft/gctoolkit/event/g1gc/G1Young.java b/api/src/main/java/com/microsoft/gctoolkit/event/g1gc/G1Young.java index 79c833b8..d47f2a46 100644 --- a/api/src/main/java/com/microsoft/gctoolkit/event/g1gc/G1Young.java +++ b/api/src/main/java/com/microsoft/gctoolkit/event/g1gc/G1Young.java @@ -18,6 +18,8 @@ public class G1Young extends G1RealPause { private double parallelPhaseDuration = -1.0d; private int gcWorkers; + private int evacuationWorkersUsed; + private int evacuationWorkersAvailable; private double codeRootFixupDuration = -1.0d; private double codeRootMigrationDuration = -1.0d; private double codeRootPurgeDuration = -1.0d; @@ -62,6 +64,14 @@ public void setGcWorkers(int count) { this.gcWorkers = count; } + public void setEvacuationWorkersUsed(int evacuationWorkersUsed) { + this.evacuationWorkersUsed = evacuationWorkersUsed; + } + + public void setEvacuationWorkersAvailable(int evacuationWorkersAvailable) { + this.evacuationWorkersAvailable = evacuationWorkersAvailable; + } + public void setCodeRootFixupDuration(double duration) { this.codeRootFixupDuration = duration; } @@ -107,6 +117,14 @@ public int getGcWorkers() { return gcWorkers; } + public int getEvacuationWorkersUsed() { + return evacuationWorkersUsed; + } + + public int getEvacuationWorkersAvailable() { + return evacuationWorkersAvailable; + } + public double getCodeRootFixupDuration() { return codeRootFixupDuration; } diff --git a/parser/src/main/java/com/microsoft/gctoolkit/parser/G1GCForwardReference.java b/parser/src/main/java/com/microsoft/gctoolkit/parser/G1GCForwardReference.java index 21be9983..699e5018 100644 --- a/parser/src/main/java/com/microsoft/gctoolkit/parser/G1GCForwardReference.java +++ b/parser/src/main/java/com/microsoft/gctoolkit/parser/G1GCForwardReference.java @@ -656,6 +656,11 @@ private void fillInPhases(G1Young collection) { postEvacuateCSetPhaseNames().forEach(name -> collection.addPostEvacuationCollectionPhase(name, postEvacuateCSetPhaseDuration(name))); } + private void fillInWorkers(G1Young collection) { + collection.setEvacuationWorkersUsed(evacuationWorkersUsed); + collection.setEvacuationWorkersAvailable(evacuationWorkersAvailable); + } + private DateTimeStamp pausePhaseDuringConcurrentCycleTime = null; private double pausePhaseDuringConcurrentCycleDuration = -1.0d; @@ -772,6 +777,7 @@ private G1Young buildYoung(G1Young collection) { fillInRegionSummary(collection); fillInMetaspaceStats(collection); fillInPhases(collection); + fillInWorkers(collection); if (toSpaceExhausted) collection.toSpaceExhausted(); if (hasReferenceGCSummary()) collection.add(generateReferenceGCSummary());