Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

csPerfFbg.cs

Go to the documentation of this file.
00001 /*
00002  *  csharpFreiburg - src/CSharpFreiburg/src/CsPerfFbg/csPerfFbg.cs
00003  *  
00004  *  (C) 2004 - Freiburg - Project - Group
00005  *  ------------------------------------------------------
00006  *  EMail: freiburg AT compiler-factory DOT de
00007  *  ------------------------------------------------------
00008  *  all rights reserved
00009  */
00010 
00011 using System;
00012 using Freiburg;
00013 
00023 public class Perf : TestFbg
00024 {
00025     public static void Main(string[] argv)
00026     {   
00027         TestFbg CTX = new TestFbg(argv);
00028 
00029         int num = 10000;
00030         int i;
00031 
00032         int     val1 = 999999;
00033         byte[]  val2 = new byte[1000];
00034         for (i=0; i<1000; i++) {
00035             val2[i] = 1;
00036         }
00037         byte[]  val3b = new byte[10];
00038         for (i=0; i<10; i++) {
00039             val3b[i] = 2;
00040         }
00041         Object[] val3 = {(short)8888, 55.56, val3b};
00042 
00043         Stat stat1 = CTX.StatCreate ("int",    0, 0);
00044         Stat stat2 = CTX.StatCreate ("binary", 0, 0);
00045         Stat stat3 = CTX.StatCreate ("list",   0, 0);
00046         Stat statA = CTX.StatCreate ("all",    0, 0);
00047 
00048         Timer allT  = CTX.TimerCreate();
00049         Timer itemT = CTX.TimerCreate();
00050 
00051       // init memory
00052         CTX.EchoU (val2);
00053 
00054       // start 'all'
00055         allT.Init ();
00056 
00057       // stat1
00058         Console.WriteLine ("start: {0}", stat1.name);
00059         itemT.Init ();
00060         for (i = 0; i < num; i++) {
00061             CTX.Echo4 (val1);
00062         }
00063         stat1.Calc (itemT);
00064         stat1.value /= num;
00065 
00066       // stat2
00067         Console.WriteLine ("start: {0}", stat2.name);
00068         itemT.Init ();
00069         for (i = 0; i < num; i++) {
00070             CTX.EchoU (val2);
00071         }
00072         stat2.Calc (itemT);
00073         stat2.value /= num;
00074 
00075       // stat3
00076         Console.WriteLine ("start: {0}", stat3.name);
00077         itemT.Init ();
00078         for (i = 0; i < num; i++) {
00079             CTX.EchoL (val3);
00080         }
00081         stat3.Calc (itemT);
00082         stat3.value /= num;
00083 
00084       // finish 'all'
00085         statA.Calc (allT);
00086         statA.value /= (num+num+num);
00087 
00088       // print values
00089         stat1.Print ();
00090         stat2.Print ();
00091         stat3.Print ();
00092         statA.Print ();
00093     }
00094 }
00095 

Generated on Tue Nov 23 16:15:58 2004 for csharpFreiburg by  doxygen 1.3.8-20040928