ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/Sync100M.java
Revision: 1.6
Committed: Tue Mar 15 19:47:06 2011 UTC (13 years, 2 months ago) by jsr166
Branch: MAIN
CVS Tags: release-1_7_0
Changes since 1.5: +1 -1 lines
Log Message:
Update Creative Commons license URL in legal notices

File Contents

# Content
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 * http://creativecommons.org/publicdomain/zero/1.0/
5 */
6
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
29 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
38 }