ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/jtreg/util/Collection/RemoveMicroBenchmark.java
(Generate patch)

Comparing jsr166/src/test/jtreg/util/Collection/RemoveMicroBenchmark.java (file contents):
Revision 1.6 by jsr166, Sun Nov 27 22:05:37 2016 UTC vs.
Revision 1.7 by jsr166, Sun Nov 27 22:13:19 2016 UTC

# Line 44 | Line 44 | import java.util.PriorityQueue;
44   import java.util.Spliterator;
45   import java.util.Vector;
46   import java.util.concurrent.ArrayBlockingQueue;
47 + import java.util.concurrent.BlockingDeque;
48   import java.util.concurrent.BlockingQueue;
49   import java.util.concurrent.ConcurrentLinkedDeque;
50   import java.util.concurrent.ConcurrentLinkedQueue;
# Line 286 | Line 287 | public class RemoveMicroBenchmark {
287                          BlockingQueue<Integer> q = (BlockingQueue<Integer>) x;
288                          jobs.addAll(blockingQueueJobs(klazz, () -> q, al));
289                      }
290 +                    if (x instanceof BlockingDeque) {
291 +                        BlockingDeque<Integer> q = (BlockingDeque<Integer>) x;
292 +                        jobs.addAll(blockingDequeJobs(klazz, () -> q, al));
293 +                    }
294                      if (x instanceof List) {
295                          List<Integer> list = (List<Integer>) x;
296                          jobs.addAll(
# Line 447 | Line 452 | public class RemoveMicroBenchmark {
452                          sink.forEach(e -> sum[0] += e);
453                          check.sum(sum[0]);}}});
454      }
455 +
456 +    List<Job> blockingDequeJobs(
457 +        String description,
458 +        Supplier<BlockingDeque<Integer>> supplier,
459 +        ArrayList<Integer> al) {
460 +        return List.of(
461 +            new Job(description + " timed pollFirst()") {
462 +                public void work() throws Throwable {
463 +                    BlockingDeque<Integer> x = supplier.get();
464 +                    int[] sum = new int[1];
465 +                    for (int i = 0; i < iterations; i++) {
466 +                        sum[0] = 0;
467 +                        x.addAll(al);
468 +                        for (Integer e; (e = x.pollFirst(0L, TimeUnit.DAYS)) != null; )
469 +                            sum[0] += e;
470 +                        check.sum(sum[0]);}}},
471 +            new Job(description + " timed pollLast()") {
472 +                public void work() throws Throwable {
473 +                    BlockingDeque<Integer> x = supplier.get();
474 +                    int[] sum = new int[1];
475 +                    for (int i = 0; i < iterations; i++) {
476 +                        sum[0] = 0;
477 +                        x.addAll(al);
478 +                        for (Integer e; (e = x.pollLast(0L, TimeUnit.DAYS)) != null; )
479 +                            sum[0] += e;
480 +                        check.sum(sum[0]);}}});
481 +    }
482   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines