00001
00002
00003
00004
00005
00006
00007
00008
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
00052 CTX.EchoU (val2);
00053
00054
00055 allT.Init ();
00056
00057
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
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
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
00085 statA.Calc (allT);
00086 statA.value /= (num+num+num);
00087
00088
00089 stat1.Print ();
00090 stat2.Print ();
00091 stat3.Print ();
00092 statA.Print ();
00093 }
00094 }
00095