ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/Sync100M.java
Revision: 1.3
Committed: Thu Oct 29 23:09:08 2009 UTC (14 years, 6 months ago) by jsr166
Branch: MAIN
Changes since 1.2: +2 -2 lines
Log Message:
whitespace

File Contents

# User Rev Content
1 dl 1.2 /*
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     * http://creativecommons.org/licenses/publicdomain
5     */
6 dl 1.1
7     class Sync100M {
8     public static void main(String[] args) throws Exception {
9     int x = loop((int)System.nanoTime(), 100000);
10     x = loop(x, 100000);
11     x = loop(x, 100000);
12     long start = System.nanoTime();
13     x = loop(x, 100000000);
14     if (x == 0) System.out.print(" ");
15     long time = System.nanoTime() - start;
16     double secs = (double)time / 1000000000.0;
17     System.out.println("time: " + secs);
18     start = System.nanoTime();
19     x = loop(x, 100000000);
20     if (x == 0) System.out.print(" ");
21     time = System.nanoTime() - start;
22     secs = (double)time / 1000000000.0;
23     System.out.println("time: " + secs);
24    
25     }
26    
27     static final Object obj = new Object();
28 jsr166 1.3
29 dl 1.1 static int loop(int x, int iters) {
30     for (int i = iters; i > 0; --i) {
31     synchronized(obj) {
32     x = x * 134775813 + 1;
33     }
34     }
35     return x;
36     }
37 jsr166 1.3
38 dl 1.1 }