comparison Jint.Runtime/Main.cs @ 2:4aed85a1f558

implemented simple vm2
author cin
date Fri, 25 Oct 2013 15:52:16 +0400
parents e113095f1de0
children aced2ae9957f
comparison
equal deleted inserted replaced
1:033ebe7432d5 2:4aed85a1f558
32 object count = 0, inc = 1; 32 object count = 0, inc = 1;
33 for (int i=0; i< 10000000; i++) 33 for (int i=0; i< 10000000; i++)
34 count = OpAdd(count,inc); 34 count = OpAdd(count,inc);
35 35
36 Console.WriteLine ("reference results: {0}, int {1} ms", count, Environment.TickCount - t ); 36 Console.WriteLine ("reference results: {0}, int {1} ms", count, Environment.TickCount - t );
37
38 var code = new VM2.Instruction[10000000];
39
40 for (int i = 0; i < code.Length; i++)
41 code[i] = new VM2.Instruction(){ code = VM2.OpCodes.Codes.Add, dest = 0, args = new int[] {0,1} };
42 var machine = new VM2.Machine ();
43
44 t = Environment.TickCount;
45
46 machine.InitFrame (new object[] { 0, 1 });
47 machine.Execute (code);
48
49 Console.WriteLine ("vm2: {0}, int {1} ms", machine.Get(0), Environment.TickCount - t );
37 } 50 }
38 51
39 public static object OpAdd(object arg1, object arg2) { 52 public static object OpAdd(object arg1, object arg2) {
40 if (arg1.GetType () == arg2.GetType ()) { 53 if (arg1.GetType () == arg2.GetType ()) {
41 return OpAddIntegers(arg1,arg2); 54 return OpAddIntegers(arg1,arg2);