ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/extra166y/ScalarLongSortDemo.java
Revision: 1.6
Committed: Mon Oct 10 16:59:04 2011 UTC (12 years, 6 months ago) by jsr166
Branch: MAIN
CVS Tags: HEAD
Changes since 1.5: +1 -1 lines
Log Message:
whitespace

File Contents

# User Rev Content
1 dl 1.1 /*
2     * Written by Doug Lea with assistance from members of JCP JSR-166
3     * Expert Group and released to the public domain, as explained at
4 jsr166 1.5 * http://creativecommons.org/publicdomain/zero/1.0/
5 dl 1.1 */
6    
7     import jsr166y.*;
8     import extra166y.*;
9     import java.util.*;
10    
11     class ScalarLongSortDemo {
12     static final long NPS = (1000L * 1000 * 1000);
13    
14 jsr166 1.6 public static void main(String[] args) throws Exception {
15 dl 1.4 int n = 1 << 22;
16 dl 1.1 int sreps = 4;
17     int reps = 10;
18     System.out.printf("Sorting %d longs, %d replications\n", n, sreps);
19     long[] a = new long[n];
20     ForkJoinPool fjpool = new ForkJoinPool();
21     ParallelLongArray pa = ParallelLongArray.createUsingHandoff(a, fjpool);
22     long max = 1234567890123L;
23    
24     for (int i = 0; i < sreps; ++i) {
25     pa.replaceWithGeneratedValue(CommonOps.longRandom(max++));
26     long last = System.nanoTime();
27     java.util.Arrays.sort(a);
28     double elapsed = (double)(System.nanoTime() - last) / NPS;
29     System.out.printf("java.util.Arrays.sort time: %7.3f\n", elapsed);
30     if (i == 0)
31     checkSorted(a);
32     }
33    
34     System.out.printf("Sorting %d longs, %d replications\n", n, reps);
35     for (int i = 0; i < reps; ++i) {
36     pa.replaceWithGeneratedValue(CommonOps.longRandom(max++));
37     long last = System.nanoTime();
38     pa.sort();
39     double elapsed = (double)(System.nanoTime() - last) / NPS;
40     System.out.printf("ParallelLongArray.sort time: %7.3f\n", elapsed);
41     if (i == 0)
42     checkSorted(a);
43     }
44    
45     fjpool.shutdown();
46     }
47    
48 jsr166 1.3 static void checkSorted(long[] a) {
49 dl 1.1 int n = a.length;
50     for (int i = 0; i < n - 1; i++) {
51     if (a[i] > a[i+1]) {
52     throw new Error("Unsorted at " + i + ": " + a[i] + " / " + a[i+1]);
53     }
54     }
55     }
56    
57    
58     }