package demo.benchmark; import java.io.*; import org.omg.CosNaming.*; public class ColocatedServer { public static void main( String[] args ) { try { org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null); NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService")); org.omg.PortableServer.POA poa = org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); org.omg.CORBA.Object o = poa.servant_to_reference(new benchImpl()); NameComponent [] name = new NameComponent[1]; name[0] = new NameComponent("benchServer", "service"); nc.bind(name, o); bench server = benchHelper.narrow(nc.resolve(name)); System.out.print(" Ping [1]\n" +" Transfer array of int [2]\n" +" Transfer array of struct [3]\n" +" \n" +" Auto mode - Long! - [auto]\n" +" EXIT [0]\n" +" --------------------------------\n" +" Your choice : "); DataInput d = new DataInputStream(System.in); String line; while ((line = d.readLine()) != null) { if ( line.equals("1") ) { System.out.print(" Number of loops : "); int loop = new Integer(d.readLine()).intValue(); int nb = loop; long startTime = 0; long stopTime = 0; startTime = System.currentTimeMillis(); while (nb-- > 0) server.ping(); stopTime = System.currentTimeMillis(); System.out.println(">>> Elapsed time = " + (stopTime - startTime)/1000 + " secs avg time = (" + ( (stopTime - startTime)/ (float)loop) + ") msecs"); } else if ( line.equals("2") ) { System.out.print(" Number of loops : "); int loop = new Integer(d.readLine()).intValue(); int nb = loop; System.out.print(" Size of array : "); int size = new Integer(d.readLine()).intValue(); int myInt[] = new int[size]; for( int si = 0; si < size; si++) { myInt[si]=si; } int ret_vals[] = null; long startTime = System.currentTimeMillis(); while (nb-- > 0) ret_vals = server.intTransfer(myInt); // for(int i = 0; i < size; System.out.print(" " + ret_vals[i++])); long stopTime = System.currentTimeMillis(); System.out.println(">>> Elapsed time = " + (stopTime - startTime)/1000 + " secs Average time = " + ((stopTime - startTime) / (float)loop) + " msecs"); } else if ( line.equals("3") ) { System.out.print(" Number of loops : "); int loop = new Integer(d.readLine()).intValue(); int nb = loop; System.out.print(" Size of structure : "); int size = new Integer(d.readLine()).intValue(); Struct myStruct[] = new Struct[size]; for( int si = 0; si < size; si++) myStruct[si]= new Struct(); long startTime = System.currentTimeMillis(); while (nb-- > 0) server.structTransfer(myStruct); long stopTime = System.currentTimeMillis(); System.out.println(">>> Elapsed time = " + (stopTime - startTime)/1000 + " secs Average time = " + ((stopTime - startTime) / (float)loop) + " msecs"); } else if ( line.equals("auto")) { System.out.println("#### Entering auto-mode ####"); System.out.print(" Number of loops : "); int loop = new Integer(d.readLine()).intValue(); int size = 1; System.out.println("\n Results are average times in msecs for " + loop+ " round trips\n"); System.out.println(" Size of array Ping Array of int Array of struct"); System.out.println(" ============= ======== ============ ==============="); for (int i=0;i<6;i++) { System.out.print("\t"+size); int myInt[] = new int[size]; Struct myStruct[] = new Struct[size]; for( int si = 0; si < size; si++) { myStruct[si]= new Struct(); myInt[si]=si; } long startTime = System.currentTimeMillis(); int nb = loop; while (nb-- > 0) server.ping(); long stopTime = System.currentTimeMillis(); System.out.print("\t"+((stopTime - startTime) / (float)loop)); startTime = System.currentTimeMillis(); nb = loop; while (nb-- > 0) server.intTransfer(myInt); stopTime = System.currentTimeMillis(); System.out.print("\t"+((stopTime - startTime) / (float)loop)); startTime = System.currentTimeMillis(); nb = loop; while (nb-- > 0) server.structTransfer(myStruct); stopTime = System.currentTimeMillis(); System.out.println("\t\t"+((stopTime - startTime) / (float)loop)); size = size*10; } System.out.println("\n#### Exiting auto-mode ####\n"); } else if ( line.equals("0") ) { System.out.println("\nExiting ..."); orb.shutdown( true ); return; //System.exit(0); } System.out.print(" Ping [1] Array of int [2] " +"Array of struct [3] : "); } // while orb.shutdown( true ); } catch (Exception e) { System.out.println("### Exception !!! ### \n"); e.printStackTrace(); } } }