コード例 #1
0
        /// <summary>
        /// Performs this benchmark.
        /// </summary>
        /// <param name="engine">The engine on which this benchmark is performed.</param>
        internal void Perform(BenchmarkEngine engine)
        {
            Debug.Assert(engine != null);

            var startTimestamp = DateTime.UtcNow;

            for (int i = 0; i < Methods.Count; ++i)
            {
                int progress = (int)((float)i / Methods.Count * 100);

                engine.OnBenchmarkProgressChanged(new ProgressChangedEventArgs(progress, Methods[i].Name));
                BenchmarkPerformer.AccumulateResults(engine, this, Methods[i]);
            }

            ExecutionTime = DateTime.UtcNow - startTimestamp;
        }
コード例 #2
0
        private static void PerformSingleBenchmark(Benchmark benchmark, BenchmarkedMethod method, BenchmarkPerformer performer)
        {
            Debug.Assert(benchmark != null);
            Debug.Assert(method != null);
            Debug.Assert(performer != null);

            performer.SetUpMethods      = benchmark.SetUpMethods;
            performer.CleanUpMethods    = benchmark.CleanUpMethods;
            performer.MethodToBenchmark = method.Method;

            method.Measures.Add(performer.Run());
        }