added math bench code. added shutdown method to disconnect from jabber. updated...
[OpenSRF.git] / src / java / org / opensrf / test / MathBench.java
1 package org.opensrf.test;
2 import org.opensrf.*;
3 import org.opensrf.util.*;
4 import java.util.Date;
5 import java.util.List;
6 import java.util.ArrayList;
7 import java.io.PrintStream;
8
9
10 public class MathBench {
11
12     public static void main(String args[]) throws Exception {
13
14         PrintStream out = System.out;
15         if(args.length < 2) {
16             out.println("usage: java org.opensrf.test.MathBench <osrfConfig> <numIterations>");
17             return;
18         }
19
20         Sys.bootstrapClient(args[0], "/config/opensrf");
21         int count = Integer.parseInt(args[1]);
22
23         ClientSession session = new ClientSession("opensrf.math");
24         List<Object> params = new ArrayList<Object>();
25         params.add(new Integer(1));
26         params.add(new Integer(2));
27
28         Request request;
29         Result result;
30         long start;
31         double total = 0;
32
33         for(int i = 0; i < count; i++) {
34
35             start = new Date().getTime();
36             request = session.request("add", params);
37             result = request.recv(5000);
38             total += new Date().getTime() - start;
39
40             if(result.getStatusCode() == Status.OK) {
41                 out.print("+");
42             } else {
43                 out.println("\nrequest failed");
44                 out.println("status = " + result.getStatus());
45                 out.println("status code = " + result.getStatusCode());
46             }
47
48             request.cleanup();
49
50             if((i+1) % 100 == 0) /* print 100 per line */
51                 out.println("");
52         }
53
54         out.println("\nAverage request time is " + (total/count) + " ms");
55         Sys.shutdown();
56     }
57 }
58
59
60