--- jsr166/src/test/loops/MapLoops.java 2005/05/02 19:19:38 1.1 +++ jsr166/src/test/loops/MapLoops.java 2005/08/07 19:25:55 1.2 @@ -18,11 +18,11 @@ import java.util.*; import java.util.concurrent.*; public class MapLoops { - static int nkeys = 10000; + static int nkeys = 1000; static int pinsert = 60; static int premove = 2; static int maxThreads = 100; - static int nops = 8000000; + static int nops = 1000000; static int removesPerMaxRandom; static int insertsPerMaxRandom; @@ -114,10 +114,11 @@ public class MapLoops { // Uncomment to start with a non-empty table // for (int j = 0; j < nkeys; j += 4) // start 1/4 occupied // map.put(key[j], key[j]); + shuffleKeys(key); LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer(); CyclicBarrier barrier = new CyclicBarrier(i+1, timer); for (int t = 0; t < i; ++t) - pool.execute(new Runner(map, key, barrier)); + pool.execute(new Runner(t, map, key, barrier)); barrier.await(); barrier.await(); long time = timer.getTime(); @@ -131,16 +132,18 @@ public class MapLoops { static class Runner implements Runnable { final Map map; final Integer[] key; - final LoopHelpers.SimpleRandom rng = new LoopHelpers.SimpleRandom(); + final LoopHelpers.SimpleRandom rng; final CyclicBarrier barrier; int position; int total; - Runner(Map map, Integer[] key, CyclicBarrier barrier) { + Runner(int id, Map map, Integer[] key, CyclicBarrier barrier) { this.map = map; this.key = key; this.barrier = barrier; - position = key.length / 2; + position = key.length / 2; + rng = new LoopHelpers.SimpleRandom((id + 1) * 8862213513L); + rng.next(); } int step() {