C #: Точен ли этот класс тестирования?

Я создал простой класс для сравнения некоторых моих методов. Но точно ли это? Я новичок в бенчмаркинге, сроках и т. Д., Поэтому подумал, что могу попросить кое-какие отзывы здесь. Кроме того, если это хорошо, возможно, кто-то еще может использовать это также :)

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

Вы можете использовать это так:

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

Есть отзывы? Это выглядит довольно стабильно и точно, или я что-то пропустил?

Ответы на вопрос(4)

Ваш ответ на вопрос