test/gc/parallelScavenge/TestDynShrinkHeap.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/test/gc/parallelScavenge/TestDynShrinkHeap.java	Thu May 22 19:52:06 2014
--- new/test/gc/parallelScavenge/TestDynShrinkHeap.java	Thu May 22 19:52:06 2014

*** 24,34 **** --- 24,34 ---- /** * @test TestDynShrinkHeap * @bug 8016479 * @summary Verify that the heap shrinks after full GC according to the current values of the Min/MaxHeapFreeRatio flags * @library /testlibrary ! * @run main/othervm -XX:+UseAdaptiveSizePolicyWithSystemGC -XX:+UseParallelGC -XX:MinHeapFreeRatio=0 -XX:MaxHeapFreeRatio=100 -Xmx1g -verbose:gc TestDynShrinkHeap */ import com.oracle.java.testlibrary.DynamicVMOption; import java.lang.management.ManagementFactory; import java.lang.management.MemoryUsage; import java.util.ArrayList;
*** 39,49 **** --- 39,49 ---- public static final String MIN_FREE_RATIO_FLAG_NAME = "MinHeapFreeRatio"; public static final String MAX_FREE_RATIO_FLAG_NAME = "MaxHeapFreeRatio"; private static ArrayList<byte[]> list = new ArrayList<>(0); ! private static final int M = 1024 * 1024; // to make heap more manageable by test code ! private static final int LEN = 512 * 1024 + 1; public TestDynShrinkHeap() { } private final void test() {
*** 67,82 **** --- 67,82 ---- ManagementFactoryHelper.getDiagnosticMXBean().getVMOption(MAX_FREE_RATIO_FLAG_NAME).getValue() )); } private void eat() { ! for (int i = 0; i < M; i++) { ! for (int i = 0; i < LEN; i++) { list.add(new byte[1024]); } ! MemoryUsagePrinter.printMemoryUsage("allocated " + M + " arrays"); ! MemoryUsagePrinter.printMemoryUsage("allocated " + LEN + " arrays"); ! list.subList(0, M / 2).clear(); ! list.subList(0, LEN / 2).clear(); System.gc(); MemoryUsagePrinter.printMemoryUsage("array halved"); } private void free() {

test/gc/parallelScavenge/TestDynShrinkHeap.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File