Skip to content

Commit c43fd41

Browse files
committed
fix calculation of initiatingOccupancyFraction for G1 algorithm
1 parent 25610d5 commit c43fd41

File tree

3 files changed

+8
-12
lines changed

3 files changed

+8
-12
lines changed

src/main/java/com/tagtraum/perf/gcviewer/model/AbstractGCEvent.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,7 @@ public boolean isConcurrentCollectionEnd() {
229229
}
230230

231231
public boolean isInitialMark() {
232-
return getTypeAsString().indexOf(Type.CMS_INITIAL_MARK.getName()) >= 0
233-
|| getTypeAsString().indexOf(Type.ASCMS_INITIAL_MARK.getName()) >= 0
234-
|| getTypeAsString().indexOf(Type.G1_YOUNG_INITIAL_MARK.getName()) >= 0
235-
|| getTypeAsString().indexOf(Type.G1_YOUNG_INITIAL_MARK_TO_SPACE_OVERFLOW.getName()) >= 0
236-
|| getTypeAsString().indexOf(Type.G1_PARTIAL_INITIAL_MARK.getName()) >= 0
237-
|| getTypeAsString().indexOf(Type.G1_PARTIAL_INITIAL_MARK_TO_SPACE_OVERFLOW.getName()) >= 0;
232+
return getTypeAsString().indexOf("initial-mark") >= 0;
238233
}
239234

240235
public boolean isRemark() {

src/main/java/com/tagtraum/perf/gcviewer/model/GCModel.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -553,17 +553,15 @@ private void updateGcPauseInterval(GCEvent event) {
553553
}
554554

555555
private void updateInitiatingOccupancyFraction(GCEvent event) {
556-
GCEvent initialMarkEvent = null;
556+
GCEvent initialMarkEvent = event;
557557

558-
if (!event.hasDetails() && event.isInitialMark()) {
559-
initialMarkEvent = event;
560-
}
561-
else {
558+
if (event.hasDetails()) {
562559
Iterator<GCEvent> i = event.details();
563-
while (i.hasNext() && initialMarkEvent == null) {
560+
while (i.hasNext()) {
564561
GCEvent gcEvent = i.next();
565562
if (gcEvent.isInitialMark()) {
566563
initialMarkEvent = gcEvent;
564+
break;
567565
}
568566
}
569567
}

src/test/java/com/tagtraum/perf/gcviewer/imp/TestDataReaderSun1_8_0G1.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.tagtraum.perf.gcviewer.imp;
22

3+
import static org.hamcrest.Matchers.closeTo;
34
import static org.hamcrest.Matchers.is;
45
import static org.junit.Assert.assertEquals;
56
import static org.junit.Assert.assertThat;
@@ -46,6 +47,8 @@ public void fullConcurrentCycle() throws Exception {
4647
assertThat("tenured size after concurrent cycle", model.getPostConcurrentCycleTenuredUsedSizes().getMax(), is(31949 - 10*1024 - 3072));
4748
assertThat("heap size after concurrent cycle", model.getPostConcurrentCycleHeapUsedSizes().getMax(), is(31949));
4849

50+
assertThat("initiatingOccupancyFraction", model.getCmsInitiatingOccupancyFraction().getMax(), closeTo(0.69, 0.001));
51+
4952
assertThat("number of errors", handler.getCount(), is(0));
5053
}
5154

0 commit comments

Comments
 (0)