< prev index next >

test/gc/g1/TestHumongousShrinkHeap.java

Print this page




  22  */
  23 
  24 /**
  25  * @test TestHumongousShrinkHeap
  26  * @bug 8036025 8056043
  27  * @requires vm.gc=="G1" | vm.gc=="null"
  28  * @summary Verify that heap shrinks after GC in the presence of fragmentation
  29  * due to humongous objects
  30  * @library /testlibrary
  31  * @modules java.management/sun.management
  32  * @run main/othervm -XX:-ExplicitGCInvokesConcurrent -XX:MinHeapFreeRatio=10
  33  * -XX:MaxHeapFreeRatio=12 -XX:+UseG1GC -XX:G1HeapRegionSize=1M -verbose:gc
  34  * TestHumongousShrinkHeap
  35  */
  36 
  37 import com.sun.management.HotSpotDiagnosticMXBean;
  38 import java.lang.management.ManagementFactory;
  39 import java.lang.management.MemoryUsage;
  40 import java.util.ArrayList;
  41 import java.util.List;
  42 import static com.oracle.java.testlibrary.Asserts.*;
  43 
  44 public class TestHumongousShrinkHeap {
  45 
  46     public static final String MIN_FREE_RATIO_FLAG_NAME = "MinHeapFreeRatio";
  47     public static final String MAX_FREE_RATIO_FLAG_NAME = "MaxHeapFreeRatio";
  48 
  49     private static final List<List<byte[]>> garbage = new ArrayList();
  50     private static final int REGION_SIZE = 1024 * 1024; // 1M
  51     private static final int LISTS_COUNT = 10;
  52     private static final int HUMON_SIZE = Math.round(.9f * REGION_SIZE);
  53     private static final long AVAILABLE_MEMORY
  54                               = Runtime.getRuntime().freeMemory();
  55     private static final int HUMON_COUNT
  56                              = (int) ((AVAILABLE_MEMORY / HUMON_SIZE)
  57             / LISTS_COUNT);
  58 
  59 
  60     public static void main(String[] args) {
  61         System.out.format("Running with %s max heap size. "
  62                 + "Will allocate humongous object of %s size %d times.%n",




  22  */
  23 
  24 /**
  25  * @test TestHumongousShrinkHeap
  26  * @bug 8036025 8056043
  27  * @requires vm.gc=="G1" | vm.gc=="null"
  28  * @summary Verify that heap shrinks after GC in the presence of fragmentation
  29  * due to humongous objects
  30  * @library /testlibrary
  31  * @modules java.management/sun.management
  32  * @run main/othervm -XX:-ExplicitGCInvokesConcurrent -XX:MinHeapFreeRatio=10
  33  * -XX:MaxHeapFreeRatio=12 -XX:+UseG1GC -XX:G1HeapRegionSize=1M -verbose:gc
  34  * TestHumongousShrinkHeap
  35  */
  36 
  37 import com.sun.management.HotSpotDiagnosticMXBean;
  38 import java.lang.management.ManagementFactory;
  39 import java.lang.management.MemoryUsage;
  40 import java.util.ArrayList;
  41 import java.util.List;
  42 import static jdk.test.lib.Asserts.*;
  43 
  44 public class TestHumongousShrinkHeap {
  45 
  46     public static final String MIN_FREE_RATIO_FLAG_NAME = "MinHeapFreeRatio";
  47     public static final String MAX_FREE_RATIO_FLAG_NAME = "MaxHeapFreeRatio";
  48 
  49     private static final List<List<byte[]>> garbage = new ArrayList();
  50     private static final int REGION_SIZE = 1024 * 1024; // 1M
  51     private static final int LISTS_COUNT = 10;
  52     private static final int HUMON_SIZE = Math.round(.9f * REGION_SIZE);
  53     private static final long AVAILABLE_MEMORY
  54                               = Runtime.getRuntime().freeMemory();
  55     private static final int HUMON_COUNT
  56                              = (int) ((AVAILABLE_MEMORY / HUMON_SIZE)
  57             / LISTS_COUNT);
  58 
  59 
  60     public static void main(String[] args) {
  61         System.out.format("Running with %s max heap size. "
  62                 + "Will allocate humongous object of %s size %d times.%n",


< prev index next >