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.4 by jsr166, Thu Nov 24 19:14:50 2016 UTC vs.
Revision 1.5 by jsr166, Thu Nov 24 20:31:44 2016 UTC

# Line 32 | Line 32 | import java.util.ArrayDeque;
32   import java.util.Arrays;
33   import java.util.ArrayList;
34   import java.util.Collection;
35 + import java.util.Collections;
36   import java.util.Deque;
37   import java.util.Enumeration;
38   import java.util.Iterator;
# Line 73 | Line 74 | public class RemoveMicroBenchmark {
74          public abstract void work() throws Throwable;
75      }
76  
77 <    int iterations;
78 <    int size;
79 <    double warmupSeconds;
80 <    long warmupNanos;
81 <    Pattern filter;
77 >    final int iterations;
78 >    final int size;             // number of elements in collections
79 >    final double warmupSeconds;
80 >    final long warmupNanos;
81 >    final Pattern filter;       // select subset of Jobs to run
82 >    final boolean reverse;      // reverse order of Jobs
83 >    final boolean shuffle;      // randomize order of Jobs
84 >
85 >    RemoveMicroBenchmark(String[] args) {
86 >        iterations    = intArg(args, "iterations", 10_000);
87 >        size          = intArg(args, "size", 1000);
88 >        warmupSeconds = doubleArg(args, "warmup", 7.0);
89 >        filter        = patternArg(args, "filter");
90 >        reverse       = booleanArg(args, "reverse");
91 >        shuffle       = booleanArg(args, "shuffle");
92 >
93 >        warmupNanos = (long) (warmupSeconds * (1000L * 1000L * 1000L));
94 >    }
95  
96      // --------------- GC finalization infrastructure ---------------
97  
# Line 182 | Line 196 | public class RemoveMicroBenchmark {
196          return (val == null) ? null : Pattern.compile(val);
197      }
198  
199 +    private static boolean booleanArg(String[] args, String keyword) {
200 +        String val = keywordValue(args, keyword);
201 +        if (val == null || val.equals("false")) return false;
202 +        if (val.equals("true")) return true;
203 +        throw new IllegalArgumentException(val);
204 +    }
205 +
206      private static List<Job> filter(Pattern filter, List<Job> jobs) {
207          if (filter == null) return jobs;
208          ArrayList<Job> newJobs = new ArrayList<>();
# Line 223 | Line 244 | public class RemoveMicroBenchmark {
244      volatile Check check = new Check();
245  
246      public static void main(String[] args) throws Throwable {
247 <        new RemoveMicroBenchmark().run(args);
247 >        new RemoveMicroBenchmark(args).run();
248      }
249  
250 <    void run(String[] args) throws Throwable {
230 <        iterations    = intArg(args, "iterations", 10_000);
231 <        size          = intArg(args, "size", 1000);
232 <        warmupSeconds = doubleArg(args, "warmup", 5);
233 <        filter        = patternArg(args, "filter");
234 <
235 <        warmupNanos = (long) (warmupSeconds * (1000L * 1000L * 1000L));
236 <
250 >    void run() throws Throwable {
251   //         System.out.printf(
252   //             "iterations=%d size=%d, warmup=%1g, filter=\"%s\"%n",
253   //             iterations, size, warmupSeconds, filter);
# Line 282 | Line 296 | public class RemoveMicroBenchmark {
296                      }
297                  });
298  
299 +        if (reverse) Collections.reverse(jobs);
300 +        if (shuffle) Collections.shuffle(jobs);
301 +
302          time(filter(filter, jobs));
303      }
304  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines