예제 #1
0
        public PerformanceResults Initialize()
        {
            PerformanceResults perfResults = new PerformanceResults()
            {
                Test = test
            };

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            resultsProvider.Initialize();

            stopwatch.Stop();
            perfResults.AvgTimeCost = perfResults.TotalTimeCost = (double)stopwatch.ElapsedMilliseconds / executionNumber;

            return(perfResults);
        }
예제 #2
0
        public PerformanceResults Execute()
        {
            DatabaseManager dbManager = new DatabaseManager();

            IList results = null;
            PerformanceResults perfResults = new PerformanceResults()
            {
                Test = test
            };

            perfResults.Modificators[TestModificator.Tracking]          = tracking;
            perfResults.Modificators[TestModificator.FirstLevelCaching] = contextCaching;

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            for (int i = 0; i < executionNumber; i++)
            {
                stopwatch.Stop();
                dbManager.RefreshDatabase();
                if (!contextCaching)
                {
                    resultsProvider.Reset();
                }
                stopwatch.Start();

                switch (test.Kind)
                {
                case TestKind.SelectSimple:
                    results = resultsProvider.GetOrders();
                    perfResults.ItemsSelected = results.Count;
                    break;

                case TestKind.SelectWithRelationsLazy:
                    results = resultsProvider.GetCustomerProductsLazy("BERGS");
                    perfResults.ItemsSelected = results.Count;
                    break;

                case TestKind.SelectWithRelationsOptimal:
                    results = resultsProvider.GetCustomerProducts("BERGS");
                    perfResults.ItemsSelected = results.Count;
                    break;

                case TestKind.ModifySimple:
                    resultsProvider.ModifyCustomers();
                    perfResults.ItemsSelected = 0;
                    break;

                case TestKind.ModifyWithRelations:
                    resultsProvider.ModifyOrdersWithRelations();
                    perfResults.ItemsSelected = 0;
                    break;

                case TestKind.ModifyHeavy:
                    resultsProvider.ModifyCustomersBunch();
                    perfResults.ItemsSelected = 0;
                    break;
                }
            }

            stopwatch.Stop();

            perfResults.AvgTimeCost   = (double)stopwatch.ElapsedMilliseconds / executionNumber;
            perfResults.TotalTimeCost = stopwatch.ElapsedMilliseconds;

            return(perfResults);
        }