diff options
Diffstat (limited to 'cs/demo/Ice/latency/Client.cs')
-rw-r--r-- | cs/demo/Ice/latency/Client.cs | 97 |
1 files changed, 53 insertions, 44 deletions
diff --git a/cs/demo/Ice/latency/Client.cs b/cs/demo/Ice/latency/Client.cs index bf9e4a37c91..9ebf5fb863a 100644 --- a/cs/demo/Ice/latency/Client.cs +++ b/cs/demo/Ice/latency/Client.cs @@ -7,64 +7,73 @@ // // ********************************************************************** -using System; using Demo; +using System; +using System.Reflection; + +[assembly: CLSCompliant(true)] + +[assembly: AssemblyTitle("IceLatencyClient")] +[assembly: AssemblyDescription("Ice latency demo client")] +[assembly: AssemblyCompany("ZeroC, Inc.")] -public class Client : Ice.Application +public class Client { - public override int - run(string[] args) + public class App : Ice.Application { - if(args.Length > 0) + public override int run(string[] args) { - Console.Error.WriteLine(appName() + ": too many arguments"); - return 1; - } + if(args.Length > 0) + { + Console.Error.WriteLine(appName() + ": too many arguments"); + return 1; + } - PingPrx ping = PingPrxHelper.checkedCast(communicator().propertyToProxy("Latency.Ping")); - if(ping == null) - { - Console.Error.WriteLine("invalid proxy"); - return 1; - } - - // - // A method needs to be invoked thousands of times before the JIT compiler - // will convert it to native code. To ensure an accurate latency measurement, - // we need to "warm up" the JIT compiler. - // - { - int reps = 20000; - Console.Error.Write("warming up the JIT compiler..."); - Console.Error.Flush(); - for(int i = 0; i < reps; i++) + PingPrx ping = PingPrxHelper.checkedCast(communicator().propertyToProxy("Latency.Ping")); + if(ping == null) + { + Console.Error.WriteLine("invalid proxy"); + return 1; + } + + // + // A method needs to be invoked thousands of times before the JIT compiler + // will convert it to native code. To ensure an accurate latency measurement, + // we need to "warm up" the JIT compiler. + // + { + int reps = 20000; + Console.Error.Write("warming up the JIT compiler..."); + Console.Error.Flush(); + for(int i = 0; i < reps; i++) + { + ping.ice_ping(); + } + Console.Error.WriteLine("ok"); + } + + long tv1 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; + int repetitions = 100000; + Console.Out.WriteLine("pinging server " + repetitions + " times (this may take a while)"); + for (int i = 0; i < repetitions; i++) { ping.ice_ping(); } - Console.Error.WriteLine("ok"); - } - - long tv1 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; - int repetitions = 100000; - Console.Out.WriteLine("pinging server " + repetitions + " times (this may take a while)"); - for (int i = 0; i < repetitions; i++) - { - ping.ice_ping(); + + long tv2 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; + double total = (double)(tv2 - tv1); + double perPing = total / repetitions; + + Console.Out.WriteLine("time for " + repetitions + " pings: " + total + "ms"); + Console.Out.WriteLine("time per ping: " + perPing + "ms"); + + return 0; } - - long tv2 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; - double total = (double)(tv2 - tv1); - double perPing = total / repetitions; - - Console.Out.WriteLine("time for " + repetitions + " pings: " + total + "ms"); - Console.Out.WriteLine("time per ping: " + perPing + "ms"); - - return 0; } public static void Main(string[] args) { - Client app = new Client(); + App app = new App(); int status = app.main(args, "config.client"); if(status != 0) { |