< prev index next >

test/lib/sun/hotspot/WhiteBox.java

Print this page

        

*** 25,34 **** --- 25,35 ---- package sun.hotspot; import java.lang.management.MemoryUsage; import java.lang.reflect.Executable; import java.util.Arrays; + import java.util.ArrayList; import java.util.List; import java.util.function.BiFunction; import java.util.function.Function; import java.security.BasicPermission; import java.util.Objects;
*** 151,160 **** --- 152,203 ---- public void addToSystemClassLoaderSearch(String segment) { Objects.requireNonNull(segment); addToSystemClassLoaderSearch0(segment); } + // GC + /** + * @returns true if GC was selected by ergonomic + */ + public boolean gcSelectedByErgo() { + if (getSupportedGC().size() < 2) { + return false; // nothing to choose from + } else { + return gcSelectedByErgo0(); + } + } + private native boolean gcSelectedByErgo0(); + + /** + * @return name of the selected GC + */ + public native String getGC(); + private native boolean supportsSerialGC(); + private native boolean supportsParallelGC(); + private native boolean supportsConcMarkSweepGC(); + private native boolean supportsG1GC(); + + /** + * @return names of GC supported by the VM + */ + public List<String> getSupportedGC() { + List<String> list = new ArrayList<>(); + if (supportsSerialGC()) { + list.add("Serial"); + } + if (supportsParallelGC()) { + list.add("Parallel"); + } + if (supportsConcMarkSweepGC()) { + list.add("ConcMarkSweep"); + } + if (supportsG1GC()) { + list.add("G1"); + } + return list; + } + // G1 public native boolean g1InConcurrentMark(); private native boolean g1IsHumongous0(Object o); public boolean g1IsHumongous(Object o) { Objects.requireNonNull(o);
< prev index next >