< prev index next >
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/parallel/ParallelScavengeHeap.java
Print this page
@@ -27,10 +27,11 @@
import java.io.*;
import java.util.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.gc.shared.*;
+import sun.jvm.hotspot.memory.MemRegion;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.types.*;
public class ParallelScavengeHeap extends CollectedHeap {
static {
@@ -86,10 +87,39 @@
public CollectedHeapName kind() {
return CollectedHeapName.PARALLEL;
}
+ // Simple wrapper to provide toString() usable for debugging.
+ private class LiveRegionProviderImpl implements LiveRegionsProvider {
+ private String name;
+ private MutableSpace space;
+
+ public LiveRegionProviderImpl(String name, MutableSpace space) {
+ this.name = name;
+ this.space = space;
+ }
+
+ @Override
+ public List<MemRegion> getLiveRegions() {
+ return space.getLiveRegions();
+ }
+ @Override
+ public String toString() {
+ return name;
+ }
+ }
+
+ public void liveRegionsIterate(LiveRegionsClosure closure) {
+ // Add eden space
+ closure.doLiveRegions(new LiveRegionProviderImpl("eden", youngGen().edenSpace()));
+ // Add from-space but not to-space
+ closure.doLiveRegions(new LiveRegionProviderImpl("from", youngGen().fromSpace()));
+
+ closure.doLiveRegions(new LiveRegionProviderImpl("old ", oldGen().objectSpace()));
+ }
+
public void printOn(PrintStream tty) {
tty.print("ParallelScavengeHeap [ ");
youngGen().printOn(tty);
oldGen().printOn(tty);
tty.print(" ] ");
< prev index next >