-2

我有以下代码

public class Test
{
  public static long Method1(Action a)
  {
        var s = Stopwatch.StartNew();
        a.Invoke();
        s.Stop();
        return s.Elapsed.TotalMilliseconds;
  }
}

在另一堂课上我怎么称呼它

            double elapsed = 0;

            for (int i = 0; i < 100000; i++)
            {


                elapsed+= (TestHelper.Timer(() => session.SaveTransaction(transaction)));
            }
            Debug.WriteLine(string.Format("avg execution time is {0} ms", elapsed/100000));

哪个不编译。呼叫代码应该如何?

4

1 回答 1

3

两个问题:

  • 您正在测量单个调用;通常,您应该对大量调用进行计时,否则可能会太快无法测量(或至少不到一毫秒)。
  • TimeSpan.Milliseconds您可能实际上是在使用TimeSpan.TotalMilliseconds; 否则,如果超过一秒钟,它仍会报告 0 到 999 之间的值。
于 2012-04-08T19:52:00.530 回答