public static void Run() { Console.WriteLine("2)"); DateTime start = DateTime.Now; DynamicMethod dm = Util.Compile("X = abs((5 - Y) * 3);", typeof(TestTwo)); Console.WriteLine(DateTime.Now - start); TestTwo obj = new TestTwo(); start = DateTime.Now; for (int i = 0; i < 100000; i++) { dm.Invoke(null, new object[] { obj }); } Console.WriteLine(DateTime.Now - start); DMCall d = (DMCall)dm.CreateDelegate(typeof(DMCall), obj); start = DateTime.Now; for (int i = 0; i < 100000; i++) { d(); } Console.WriteLine(DateTime.Now - start); Console.WriteLine(obj.X); }
public static void Main(string[] args) { // TestOne.Run(); TestTwo.Run(); // TestOne.Run(); // TestTwo.Run(); // TestOne.Run(); // TestTwo.Run(); TestCall.Run(); // TestPersist.Run(); // TestCast.Run(); // TestInvoke.Run(); TestScope.Run(); }
public static void Run() { Console.WriteLine("2)"); DateTime start = DateTime.Now; DynamicMethod dm = Util.Compile("X = abs((5 - Y) * 3);", typeof(TestTwo)); Console.WriteLine(DateTime.Now - start); TestTwo obj = new TestTwo(); start = DateTime.Now; for (int i = 0; i < 100000; i++) dm.Invoke(null, new object[] { obj }); Console.WriteLine(DateTime.Now - start); DMCall d = (DMCall) dm.CreateDelegate(typeof(DMCall), obj); start = DateTime.Now; for (int i = 0; i < 100000; i++) d(); Console.WriteLine(DateTime.Now - start); Console.WriteLine(obj.X); }