< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/heap/HeapWalkTests.java

Print this page
rev 58143 : imported patch test_heap_walk

*** 29,38 **** --- 29,39 ---- package nsk.jvmti.unit.heap; import nsk.share.jvmti.unit.*; import java.io.PrintStream; + import java.util.*; public class HeapWalkTests { final static int JCK_STATUS_BASE = 95; final static int PASSED = 0;
*** 44,56 **** // produce JCK-like exit status. System.exit(run(args, System.out) + JCK_STATUS_BASE); } public static int run(String args[], PrintStream out) { ! test1(); test2(); test3(); return PASSED; } private static void test1() { long tag; --- 45,60 ---- // produce JCK-like exit status. System.exit(run(args, System.out) + JCK_STATUS_BASE); } public static int run(String args[], PrintStream out) { ! /* test1(); test2(); test3(); + + */ + test4(); return PASSED; } private static void test1() { long tag;
*** 154,159 **** --- 158,186 ---- if (failures > 0) { throw new RuntimeException("IterateOverObjectsReachableFromObject test failed"); } } + + static final long TARGET_OBJECTS = 300_000; + + private static void test4() { + ArrayList<ArrayList<Foo>> objects = new ArrayList<>(); + long cnt = 0; + Random r = new Random(); + while (cnt < TARGET_OBJECTS) { + int current = r.nextInt(2_000); + ArrayList<Foo> list = new ArrayList<>(current); + for (int index = 0; index < current; index ++) { + list.add(new Foo()); + } + objects.add(list); + cnt += current; + } + + long start = System.nanoTime(); + Heap.iterateOverObjectsReachableFromObject(objects); + long end = System.nanoTime(); + + System.out.println("\nTime: " + (end - start) + " nsecs"); + } }
< prev index next >