001: package demo.benchmark;
002:
003: import java.io.*;
004: import org.omg.CosNaming.*;
005:
006: public class ColocatedServer {
007: public static void main(String[] args) {
008: try {
009: org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
010: NamingContextExt nc = NamingContextExtHelper.narrow(orb
011: .resolve_initial_references("NameService"));
012:
013: org.omg.PortableServer.POA poa = org.omg.PortableServer.POAHelper
014: .narrow(orb.resolve_initial_references("RootPOA"));
015:
016: poa.the_POAManager().activate();
017:
018: org.omg.CORBA.Object o = poa
019: .servant_to_reference(new benchImpl());
020:
021: NameComponent[] name = new NameComponent[1];
022: name[0] = new NameComponent("benchServer", "service");
023: nc.bind(name, o);
024:
025: bench server = benchHelper.narrow(nc.resolve(name));
026:
027: System.out.print(" Ping [1]\n"
028: + " Transfer array of int [2]\n"
029: + " Transfer array of struct [3]\n"
030: + " \n"
031: + " Auto mode - Long! - [auto]\n"
032: + " EXIT [0]\n"
033: + " --------------------------------\n"
034: + " Your choice : ");
035:
036: DataInput d = new DataInputStream(System.in);
037: String line;
038:
039: while ((line = d.readLine()) != null) {
040: if (line.equals("1")) {
041: System.out.print(" Number of loops : ");
042: int loop = new Integer(d.readLine()).intValue();
043: int nb = loop;
044: long startTime = 0;
045: long stopTime = 0;
046:
047: startTime = System.currentTimeMillis();
048: while (nb-- > 0)
049: server.ping();
050:
051: stopTime = System.currentTimeMillis();
052:
053: System.out.println(">>> Elapsed time = "
054: + (stopTime - startTime) / 1000
055: + " secs avg time = ("
056: + ((stopTime - startTime) / (float) loop)
057: + ") msecs");
058:
059: } else if (line.equals("2")) {
060: System.out.print(" Number of loops : ");
061: int loop = new Integer(d.readLine()).intValue();
062: int nb = loop;
063: System.out.print(" Size of array : ");
064: int size = new Integer(d.readLine()).intValue();
065: int myInt[] = new int[size];
066: for (int si = 0; si < size; si++) {
067: myInt[si] = si;
068: }
069:
070: int ret_vals[] = null;
071:
072: long startTime = System.currentTimeMillis();
073: while (nb-- > 0)
074: ret_vals = server.intTransfer(myInt);
075:
076: // for(int i = 0; i < size; System.out.print(" " + ret_vals[i++]));
077:
078: long stopTime = System.currentTimeMillis();
079: System.out.println(">>> Elapsed time = "
080: + (stopTime - startTime) / 1000
081: + " secs Average time = "
082: + ((stopTime - startTime) / (float) loop)
083: + " msecs");
084:
085: } else if (line.equals("3")) {
086: System.out.print(" Number of loops : ");
087: int loop = new Integer(d.readLine()).intValue();
088: int nb = loop;
089: System.out.print(" Size of structure : ");
090: int size = new Integer(d.readLine()).intValue();
091: Struct myStruct[] = new Struct[size];
092: for (int si = 0; si < size; si++)
093: myStruct[si] = new Struct();
094:
095: long startTime = System.currentTimeMillis();
096: while (nb-- > 0)
097: server.structTransfer(myStruct);
098: long stopTime = System.currentTimeMillis();
099: System.out.println(">>> Elapsed time = "
100: + (stopTime - startTime) / 1000
101: + " secs Average time = "
102: + ((stopTime - startTime) / (float) loop)
103: + " msecs");
104:
105: } else if (line.equals("auto")) {
106: System.out.println("#### Entering auto-mode ####");
107: System.out.print(" Number of loops : ");
108: int loop = new Integer(d.readLine()).intValue();
109: int size = 1;
110: System.out
111: .println("\n Results are average times in msecs for "
112: + loop + " round trips\n");
113: System.out
114: .println(" Size of array Ping Array of int Array of struct");
115: System.out
116: .println(" ============= ======== ============ ===============");
117: for (int i = 0; i < 6; i++) {
118: System.out.print("\t" + size);
119: int myInt[] = new int[size];
120: Struct myStruct[] = new Struct[size];
121: for (int si = 0; si < size; si++) {
122: myStruct[si] = new Struct();
123: myInt[si] = si;
124: }
125: long startTime = System.currentTimeMillis();
126: int nb = loop;
127: while (nb-- > 0)
128: server.ping();
129: long stopTime = System.currentTimeMillis();
130: System.out
131: .print("\t"
132: + ((stopTime - startTime) / (float) loop));
133: startTime = System.currentTimeMillis();
134: nb = loop;
135: while (nb-- > 0)
136: server.intTransfer(myInt);
137: stopTime = System.currentTimeMillis();
138: System.out
139: .print("\t"
140: + ((stopTime - startTime) / (float) loop));
141: startTime = System.currentTimeMillis();
142: nb = loop;
143: while (nb-- > 0)
144: server.structTransfer(myStruct);
145: stopTime = System.currentTimeMillis();
146: System.out
147: .println("\t\t"
148: + ((stopTime - startTime) / (float) loop));
149: size = size * 10;
150: }
151: System.out
152: .println("\n#### Exiting auto-mode ####\n");
153: } else if (line.equals("0")) {
154: System.out.println("\nExiting ...");
155: orb.shutdown(true);
156: return;
157: //System.exit(0);
158: }
159: System.out.print(" Ping [1] Array of int [2] "
160: + "Array of struct [3] : ");
161:
162: } // while
163: orb.shutdown(true);
164:
165: } catch (Exception e) {
166: System.out.println("### Exception !!! ### \n");
167: e.printStackTrace();
168: }
169:
170: }
171: }
|