KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > scenario > standalone > jvm > SpeedTest


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Nicolas Modrzyk.
22  * Contributor(s): ______________________.
23  */

24
25 package org.objectweb.cjdbc.scenario.standalone.jvm;
26
27 import org.objectweb.cjdbc.scenario.templates.NoTemplate;
28
29 /**
30  * This class defines a SpeedTest
31  *
32  * @author <a HREF="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
33  * @version 1.0
34  */

35 public class SpeedTest extends NoTemplate
36 {
37
38   private static boolean isPrime(long i)
39   {
40     for (long test = 2; test < i; test++)
41     {
42       if (i % test == 0)
43       {
44         return false;
45       }
46     }
47     return true;
48   }
49
50   /**
51    * Test JVM speed by computing primes
52    */

53   public void testJVMSpeed()
54   {
55     long start_time = System.currentTimeMillis();
56
57     long n_loops = 50000;
58     long n_primes = 0;
59
60     for (long i = 0; i < n_loops; i++)
61     {
62       if (isPrime(i))
63       {
64         n_primes++;
65       }
66     }
67
68     long end_time = System.currentTimeMillis();
69
70     System.out.println(n_primes + " primes found");
71     System.out.println("Time taken = " + (end_time - start_time));
72   }
73
74   public void testJVMThread()
75   {
76     int count = 0;
77     try
78     {
79       while (true)
80       {
81         new WaitThread().start();
82         count++;
83       }
84     }
85     catch (RuntimeException JavaDoc re)
86     {
87       re.printStackTrace();
88       System.out.println("Spawned " + count + " threads before failing");
89     }
90     catch (Error JavaDoc e)
91     {
92       e.printStackTrace();
93       System.out.println("Spawned " + count + " threads before failing");
94     }
95   }
96
97   class WaitThread extends Thread JavaDoc
98   {
99     public void run()
100     {
101       synchronized (this)
102       {
103         try
104         {
105           this.wait();
106         }
107         catch (InterruptedException JavaDoc e)
108         {
109           // TODO Auto-generated catch block
110
e.printStackTrace();
111         }
112       }
113     }
114   }
115 }
Popular Tags