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