コード例 #1
0
        private Stopwatch ExecuteTest <T>(IBenchmark benchmark, IScenarioStrategy strategy, ref List <long> delays) where T : BaseModel
        {
            var stopwatch = new Stopwatch();

            if (strategy is JustReadsStrategy)
            {
                //populateDB
                benchmark.Test <T>(new JustInsertsStrategy {
                    CountOfOperations = strategy.CountOfOperations
                });
                ModelFactory._iterator = ModelFactory.Max;
            }
            if (strategy is ReadsToWritesWithRatioStrategy)
            {
                benchmark.Test <T>(new JustInsertsStrategy {
                    CountOfOperations = (int)(strategy.CountOfOperations * 0.9)
                });
            }

            stopwatch.Start();
            benchmark.Test <T>(strategy);
            stopwatch.Stop();
            benchmark.Dispose();
            delays = benchmark.Delays;
            return(stopwatch);
        }
コード例 #2
0
        public void Test <T>(IScenarioStrategy scenario) where T : BaseModel
        {
            var mf       = new ModelFactory();
            var dataType = mf.GetModelDataType <T>();

            scenario.ExecuteStrategy(_db, dataType);
            Delays = scenario.Delays;
        }
コード例 #3
0
        public Result TestSingle <T>(IBenchmark benchmark, IScenarioStrategy strategy) where T : BaseModel
        {
            var delays    = new List <long>();
            var stopwatch = ExecuteTest <T>(benchmark, strategy, ref delays);

            return(new Result
            {
                Db = benchmark.ToString(),
                Time = stopwatch.ElapsedMilliseconds,
                Delays = delays
            });
        }