コード例 #1
0
        public void Run()
        {
            var typedModel      = ViewModels.CreateTypedViewModel();
            var dynamicModel    = ViewModels.CreateDynamicViewModel();
            var dictionaryModel = ViewModels.CreateDictionaryModel();
            var benchmarks      = GetBenchmarkCases().ToArray();

            Console.WriteLine("Warming up and validating benchmarks");

            foreach (var benchmark in benchmarks)
            {
                Templates.AssertTemplateSample(benchmark.RenderTypedModel(typedModel), benchmark.Name + " (Typed Model)");
                if (benchmark.SupportsUntypedModel)
                {
                    Templates.AssertTemplateSample(benchmark.RenderUntypedModel(typedModel), benchmark.Name + " (Untyped Model)");
                }
                if (benchmark.SupportsDynamicModel)
                {
                    Templates.AssertTemplateSample(benchmark.RenderDynamicModel(dynamicModel), benchmark.Name + " (Dynamic Model)");
                }
                if (benchmark.SupportsDictionaryModel)
                {
                    Templates.AssertTemplateSample(benchmark.RenderDictionaryModel(dictionaryModel), benchmark.Name + " (Dictionary Model)");
                }
            }

            Console.WriteLine("----------");

            foreach (var benchmark in benchmarks)
            {
                Execute(() => benchmark.RenderTypedModel(typedModel), benchmark.Name + " (Typed Model)");
                if (benchmark.SupportsUntypedModel)
                {
                    Execute(() => benchmark.RenderUntypedModel(typedModel), benchmark.Name + " (Untyped Model)");
                }
                if (benchmark.SupportsDynamicModel)
                {
                    Execute(() => benchmark.RenderDynamicModel(dynamicModel), benchmark.Name + " (Dynamic Model)");
                }
                if (benchmark.SupportsDictionaryModel)
                {
                    Execute(() => benchmark.RenderDictionaryModel(dictionaryModel), benchmark.Name + " (Dictionary Model)");
                }
            }

            foreach (var benchmark in benchmarks.OfType <IDisposable>())
            {
                benchmark.Dispose();
            }
        }
コード例 #2
0
        public void Run()
        {
            var model      = ViewModels.CreateTypedViewModel();
            var benchmarks = GetBenchmarkCases().ToArray();

            Console.WriteLine("Warming up benchmarks");
            for (int i = 0, j = benchmarks.Length; i < j; i++)
            {
                benchmarks[i].Render(NullTextWriter.Instance, model);
            }
            Console.WriteLine("-----------");

            for (int i = 0, j = benchmarks.Length; i < j; i++)
            {
                Execute(benchmarks[i], model);
            }

            foreach (var benchmark in benchmarks.OfType <IDisposable>())
            {
                benchmark.Dispose();
            }
        }