public static void Run()
        {
            Console.WriteLine("1)");

            DateTime      start = DateTime.Now;
            DynamicMethod dm    = Util.Compile("X = abs((5 - Y) * 3);", typeof(TestOne));

            Console.WriteLine(DateTime.Now - start);

            TestOne obj = new TestOne();

            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);
        }
Exemplo n.º 2
0
        public static void Run()
        {
            Console.WriteLine("1)");

            DateTime start = DateTime.Now;
            DynamicMethod dm = Util.Compile("X = abs((5 - Y) * 3);", typeof(TestOne));
            Console.WriteLine(DateTime.Now - start);

            TestOne obj = new TestOne();

            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);
        }