KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > benchmark > Client


1 package demo.benchmark;
2
3 import java.io.*;
4 import org.omg.CosNaming.*;
5
6 /**
7  * A simple benchmark for remote invocations.
8  * It takes the system clock right before and after
9  * method invocations. Originally adopted
10  * from code by Christophe Warland
11  */

12
13 public class Client
14 {
15
16     public static void main(String JavaDoc args[])
17     {
18     org.omg.CORBA.ORB JavaDoc orb = org.omg.CORBA.ORB.init(args, null);
19     bench server = null;
20
21     try
22     {
23         if( args.length > 0 )
24         {
25                 try
26                 {
27                     File f = new File( args[0] );
28                     BufferedReader br = new BufferedReader( new FileReader( f ));
29                     String JavaDoc ior = br.readLine();
30                     br.close();
31                     server = benchHelper.narrow(orb.string_to_object(ior));
32                 }
33                 catch (Exception JavaDoc e)
34                 {
35                     e.printStackTrace();
36                     System.exit( 1 );
37                 }
38
39         }
40         else
41         {
42         NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
43         server = benchHelper.narrow(nc.resolve(nc.to_name("benchmark")));
44         }
45
46         System.out.print(" Ping [1]\n"
47                  +" Transfer array of int [2]\n"
48                  +" Transfer array of byte [3]\n"
49                  +" Transfer array of struct [4]\n"
50                  +" Transfer array of string [5]\n"
51                  +" \n"
52                  +" Auto mode - Long! - [auto]\n"
53                  +" EXIT [0]\n"
54                  +" --------------------------------\n"
55                  +" Your choice : ");
56
57         DataInput d = new DataInputStream(System.in);
58         String JavaDoc line;
59     
60         while ((line = d.readLine()) != null)
61         {
62         if ( line.equals("1") )
63         {
64             System.out.print(" Number of loops : ");
65             int loop = new Integer JavaDoc(d.readLine()).intValue();
66             int nb = loop;
67             long startTime = 0;
68             long stopTime = 0;
69
70             startTime = System.currentTimeMillis();
71             while (nb-- > 0)
72             server.ping();
73
74             stopTime = System.currentTimeMillis();
75
76             System.out.println(">>> Elapsed time = "
77                        + (stopTime - startTime)/1000
78                        + " secs avg time = ("
79                        + ( (stopTime - startTime)/ (float)loop)
80                        + ") msecs");
81             
82         }
83         else if ( line.equals("2") )
84         {
85             System.out.print(" Number of loops : ");
86             int loop = new Integer JavaDoc(d.readLine()).intValue();
87             int nb = loop;
88             System.out.print(" Size of array : ");
89             int size = new Integer JavaDoc(d.readLine()).intValue();
90             int myInt[] = new int[size];
91             for( int si = 0; si < size; si++)
92             {
93             myInt[si]=si;
94             }
95
96             int ret_vals[] = null;
97                     
98             long startTime = System.currentTimeMillis();
99             while (nb-- > 0)
100             ret_vals = server.intTransfer(myInt);
101
102             // for(int i = 0; i < size; System.out.print(" " + ret_vals[i++]));
103

104             long stopTime = System.currentTimeMillis();
105             System.out.println(">>> Elapsed time = "
106                        + (stopTime - startTime)/1000
107                        + " secs Average time = "
108                        + ((stopTime - startTime) / (float)loop)
109                        + " msecs");
110                     
111         }
112         else if ( line.equals("3") )
113         {
114                     // byte arrays
115

116             System.out.print(" Number of loops : ");
117             int loop = new Integer JavaDoc(d.readLine()).intValue();
118             int nb = loop;
119             System.out.print(" Size of array : ");
120             int size = new Integer JavaDoc(d.readLine()).intValue();
121             byte mybytes[] = new byte[size];
122         
123             long startTime = System.currentTimeMillis();
124             while (nb-- > 0)
125             server.octetTransfer(mybytes);
126
127             long stopTime = System.currentTimeMillis();
128             System.out.println(">>> Elapsed time = "
129                        + (stopTime - startTime)/1000
130                        + " secs Average time = "
131                        + ((stopTime - startTime) / (float)loop)
132                        + " msecs");
133             
134         }
135         else if ( line.equals("4") )
136         {
137                     // struct arrays
138

139             System.out.print(" Number of loops : ");
140             int loop = new Integer JavaDoc(d.readLine()).intValue();
141             int nb = loop;
142             System.out.print(" Array Size : ");
143             int size = new Integer JavaDoc(d.readLine()).intValue();
144             Struct myStruct[] = new Struct[size];
145
146             for( int si = 0; si < size; si++)
147             myStruct[si]= new Struct();
148         
149             long startTime = System.currentTimeMillis();
150             while (nb-- > 0)
151             server.structTransfer(myStruct);
152
153             long stopTime = System.currentTimeMillis();
154             System.out.println(">>> Elapsed time = "
155                        + (stopTime - startTime)/1000
156                        + " secs Average time = "
157                        + ((stopTime - startTime) / (float)loop)
158                        + " msecs");
159             
160         }
161         else if ( line.equals("5") )
162         {
163                     // string arrays
164

165             System.out.print(" Number of loops : ");
166             int loop = new Integer JavaDoc(d.readLine()).intValue();
167             int nb = loop;
168             System.out.print(" Array size: ");
169             int size = new Integer JavaDoc(d.readLine()).intValue();
170             String JavaDoc myString[] = new String JavaDoc[size];
171
172             for( int si = 0; si < size; si++)
173             myString[si]= "testString";
174         
175             long startTime = System.currentTimeMillis();
176             while (nb-- > 0)
177             server.stringTransfer(myString);
178
179             long stopTime = System.currentTimeMillis();
180             System.out.println(">>> Elapsed time = "
181                        + (stopTime - startTime)/1000
182                        + " secs Average time = "
183                        + ((stopTime - startTime) / (float)loop)
184                        + " msecs");
185             
186         }
187         else if ( line.equals("auto"))
188         {
189             System.out.println("#### Entering auto-mode ####");
190             System.out.print(" Number of loops : ");
191             int loop = new Integer JavaDoc(d.readLine()).intValue();
192             int size = 1;
193             System.out.println("\n Results are average times in msecs for "
194                        + loop+ " round trips\n");
195             System.out.println(" Array size Ping int[] byte[] struct[] string[]");
196             System.out.println(" ============= ======== ====== ======= ========== =========");
197
198             for (int i = 0; i < 6; i++ )
199             {
200             System.out.print("\t"+size);
201             int myInt[] = new int[size];
202             byte myByte[] = new byte[size];
203             Struct myStruct[] = new Struct[size];
204             String JavaDoc myString[] = new String JavaDoc[size];
205             for( int si = 0; si < size; si++)
206             {
207                 myStruct[si]= new Struct();
208                 myInt[si]=si;
209                             myString[si]= "testString";
210             }
211
212             long startTime = System.currentTimeMillis();
213
214             int nb = loop;
215             while (nb-- > 0)
216                 server.ping();
217
218             long stopTime = System.currentTimeMillis();
219             System.out.print("\t"+((stopTime - startTime) / (float)loop));
220             startTime = System.currentTimeMillis();
221
222             nb = loop;
223             while (nb-- > 0)
224                 server.intTransfer(myInt);
225
226             stopTime = System.currentTimeMillis();
227             System.out.print("\t"+((stopTime - startTime) / (float)loop));
228
229             startTime = System.currentTimeMillis();
230             nb = loop;
231             while (nb-- > 0)
232                 server.octetTransfer( myByte );
233             stopTime = System.currentTimeMillis();
234             System.out.print("\t"+((stopTime - startTime) / (float)loop));
235
236             startTime = System.currentTimeMillis();
237             nb = loop;
238             while (nb-- > 0)
239                 server.structTransfer(myStruct);
240             stopTime = System.currentTimeMillis();
241             System.out.print("\t"+((stopTime - startTime) / (float)loop));
242
243             startTime = System.currentTimeMillis();
244             nb = loop;
245             while (nb-- > 0)
246                 server.stringTransfer(myString);
247             stopTime = System.currentTimeMillis();
248             System.out.print("\t"+((stopTime - startTime) / (float)loop));
249
250                         System.out.println();
251             size = size*10;
252             }
253             System.out.println("\n#### Exiting auto-mode ####\n");
254         }
255         else if ( line.equals("0") )
256         {
257             System.out.println("\nExiting ...");
258             orb.shutdown( true );
259             return;
260             //System.exit(0);
261
}
262         System.out.print(" Ping [1] Array of int [2] Array of byte [3] "
263                  +"Array of struct [4] : ");
264              
265         } // while
266
}
267     catch (Exception JavaDoc e)
268     {
269         System.out.println("### Exception !!! ### \n");
270         e.printStackTrace();
271     }
272     orb.shutdown( true );
273     // System.exit(0);
274
}
275 }
276
277
278
Popular Tags