jdk/test/java/rmi/reliability/benchmark/bench/rmi/ShortArrayCalls.java
changeset 309 bda219d843f6
parent 2 90ce3da70b43
child 715 f16baef3a20e
equal deleted inserted replaced
308:33a1639d64a5 309:bda219d843f6
     1 /* 
     1 /*
     2  * Copyright 2000 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 2000 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
    18  *
    18  *
    19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
    21  * have any questions.
    21  * have any questions.
    22  */
    22  */
    23  
    23 
    24 /*
    24 /*
    25  *
    25  *
    26  */
    26  */
    27 
    27 
    28 package bench.rmi;
    28 package bench.rmi;
    37  * return values.
    37  * return values.
    38  */
    38  */
    39 public class ShortArrayCalls implements Benchmark {
    39 public class ShortArrayCalls implements Benchmark {
    40 
    40 
    41     interface Server extends Remote {
    41     interface Server extends Remote {
    42 	public short[] call(short[] a) throws RemoteException;
    42         public short[] call(short[] a) throws RemoteException;
    43     }
    43     }
    44 
    44 
    45     static class ServerImpl extends UnicastRemoteObject implements Server {
    45     static class ServerImpl extends UnicastRemoteObject implements Server {
    46 	public ServerImpl() throws RemoteException {
    46         public ServerImpl() throws RemoteException {
    47 	}
    47         }
    48 	
    48 
    49 	public short[] call(short[] a) throws RemoteException {
    49         public short[] call(short[] a) throws RemoteException {
    50 	    return a;
    50             return a;
    51 	}
    51         }
    52     }
    52     }
    53     
    53 
    54     static class ServerFactory implements BenchServer.RemoteObjectFactory {
    54     static class ServerFactory implements BenchServer.RemoteObjectFactory {
    55 	public Remote create() throws RemoteException {
    55         public Remote create() throws RemoteException {
    56 	    return new ServerImpl();
    56             return new ServerImpl();
    57 	}
    57         }
    58     }
    58     }
    59     
    59 
    60     /**
    60     /**
    61      * Issue short array calls.
    61      * Issue short array calls.
    62      * Arguments: <array size> <# calls>
    62      * Arguments: <array size> <# calls>
    63      */
    63      */
    64     public long run(String[] args) throws Exception {
    64     public long run(String[] args) throws Exception {
    65 	int size = Integer.parseInt(args[0]);
    65         int size = Integer.parseInt(args[0]);
    66 	int reps = Integer.parseInt(args[1]);
    66         int reps = Integer.parseInt(args[1]);
    67 	BenchServer bsrv = Main.getBenchServer();
    67         BenchServer bsrv = Main.getBenchServer();
    68 	Server stub = (Server) bsrv.create(new ServerFactory());
    68         Server stub = (Server) bsrv.create(new ServerFactory());
    69 	short[] array = new short[size];
    69         short[] array = new short[size];
    70 
    70 
    71 	long start = System.currentTimeMillis();
    71         long start = System.currentTimeMillis();
    72 	for (int i = 0; i < reps; i++)
    72         for (int i = 0; i < reps; i++)
    73 	    stub.call(array);
    73             stub.call(array);
    74 	long time = System.currentTimeMillis() - start;
    74         long time = System.currentTimeMillis() - start;
    75 	
    75 
    76 	bsrv.unexport(stub, true);
    76         bsrv.unexport(stub, true);
    77 	return time;
    77         return time;
    78     }
    78     }
    79 }
    79 }
    80