Exemple #1
0
        private static void PerformanceTest2()
        {
            var tracer = new StopwatchTracer();

            Binder.SetTracer(tracer);

            var action = new BindingAction <string>
            {
                Action = TestExecute
            };

            var ctx     = "abc";
            var binding = new Binding1
            {
                Action = () => action.Action(ctx)
            };

            IBinding binding2 = new Binding2 <string>
            {
                Action  = action,
                Context = ctx
            };

            var action3 = new BindingAction3
            {
                Action = x => TestExecute((string)x)
            };

            var binding3 = new Binding3
            {
                Action  = action3,
                Context = ctx
            };

            var sw = new Stopwatch();

            sw.Start();

            for (int i = 0; i < 100000000; ++i)
            {
                //binding.Action();
                //binding2.Execute();
                binding3.Execute();
            }

            sw.Stop();

            // expected result: 400ms on average workstation
            Console.WriteLine($"Total: {sw.ElapsedMilliseconds}ms");
            Console.WriteLine($"Bindings: {tracer.Elapsed.TotalMilliseconds}ms");
            Console.ReadLine();
        }
Exemple #2
0
        private static void PerformanceTest()
        {
            Binder.DebugMode = false;
            var tracer = new StopwatchTracer();
            //Binder.SetTracer(tracer);

            var consumer = new Consumer();
            var model1   = new Model
            {
                Data1  = 1.0,
                Data2  = 2.0,
                Data3  = 3.0,
                Data4  = 4.0,
                Data5  = 5.0,
                Data6  = 1.0,
                Data7  = 2.0,
                Data8  = 3.0,
                Data9  = 4.0,
                Data10 = 5.0
            };

            var model2 = new Model
            {
                Data1  = 2.0,
                Data2  = 3.0,
                Data3  = 4.0,
                Data4  = 5.0,
                Data5  = 6.0,
                Data6  = 2.0,
                Data7  = 3.0,
                Data8  = 4.0,
                Data9  = 5.0,
                Data10 = 6.0
            };

            var sw = new Stopwatch();

            sw.Start();

            for (int i = 0; i < 50000; ++i)
            {
                consumer.Source.Model = model1;
                if (consumer.FormattedAggregate != "30.0")
                {
                    throw new Exception();
                }
                consumer.Source.Model = model2;
                if (consumer.FormattedAggregate != "40.0")
                {
                    throw new Exception();
                }
            }

            sw.Stop();

            // expected result: 400ms on average workstation
            Console.WriteLine($"Total: {sw.ElapsedMilliseconds}ms");
            Console.WriteLine($"Bindings: {tracer.Elapsed.TotalMilliseconds}ms");

            Console.ReadLine();
        }