创建一个方法来返回另一个方法的执行时间

Ale*_*lex 2 .net c# performance

我正在尝试提出一种方法来测量并返回另一种方法的执行时间.基本上是这样的:

__CODE__签名,因此它的范围是-128..127而不是0..255.考虑到这一点,你的字节是正确的.如果字节的无符号值是__CODE__,则有符号值是__CODE__- 因此,对于__CODE__有符号值是__CODE__.

dtb*_*dtb 7

我刚刚在这个SO问题中创建了一种测试性能的方法:

private static TimeSpan MeasureExecTime(Action action, int iterations)
{
    action(); // warm up
    var sw = Stopwatch.StartNew();
    for (int i = 0; i < iterations; i++)
    {
        action();
    }
    return sw.Elapsed;
}
Run Code Online (Sandbox Code Playgroud)

用法:

MeasureExecTime(() => DoSomething(5), 100000);
Run Code Online (Sandbox Code Playgroud)

如果您不想测试多次迭代,请参阅280Z28的答案:-)

  • @Thomas,它有一些缺陷,但在秒表startnew之前调用动作不是其中之一.看我的回答. (2认同)

Sam*_*ell 7

public static TimeSpan MeasureExecTime(Action action)
{
    Stopwatch stopwatch = Stopwatch.StartNew();
    action();
    return stopwatch.Elapsed;
}
Run Code Online (Sandbox Code Playgroud)