コード例 #1
0
ファイル: Program.cs プロジェクト: manirana007/NodaTime
 private static BenchmarkResult RunBenchmark(MethodInfo method, object instance, BenchmarkOptions options)
 {
     var action = (Action)Delegate.CreateDelegate(typeof(Action), instance, method);
     // Start small, double until we've hit our warm-up time
     int iterations = 100;
     while (true)
     {
         Duration duration = RunTest(action, iterations, options.Timer);
         if (duration >= options.WarmUpTime)
         {
             // Scale up the iterations to work out the full test time
             double scale = ((double)options.TestTime.Ticks) / duration.Ticks;
             iterations = (int)(iterations * scale);
             break;
         }
         iterations *= 2;
     }
     Duration testDuration = RunTest(action, iterations, options.Timer);
     return new BenchmarkResult(method, iterations, testDuration);
 }
コード例 #2
0
 public string ToString(BenchmarkOptions options)
 {
     string formatString = options.DisplayRawData ? LongFormatString : ShortFormatString;
     return string.Format(formatString, Method.Name, CallsPerSecond, Iterations, Duration.Ticks, TicksPerCall);
 }