C #: Esta classe de benchmarking é precisa?

Eu criei uma classe simples para avaliar alguns métodos meus. Mas é preciso? Eu sou meio novo em benchmarking, timing, et cetera, então achei que poderia pedir algum feedback aqui. Além disso, se é bom, talvez alguém possa fazer uso também :)

public static class Benchmark
{
    public static IEnumerable<long> This(Action subject)
    {
        var watch = new Stopwatch();
        while (true)
        {
            watch.Reset();
            watch.Start();
            subject();
            watch.Stop();
            yield return watch.ElapsedTicks;
        }
    }
}

Você pode usá-lo assim:

var avg = Benchmark.This(() => SomeMethod()).Take(500).Average();

Algum feedback? Parece ser bastante estável e preciso ou perdi alguma coisa?

questionAnswers(4)

yourAnswerToTheQuestion