私のいくつかのメソッドをベンチマークするための簡単なクラスを作成しました。しかし、それは正確ですか?私はベンチマークやタイミングなどに不慣れなので、ここでフィードバックを求めることができると思いました。また、それが良ければ、他の誰かがそれを利用できるかもしれません:)
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;
}
}
}
次のように使用できます。
var avg = Benchmark.This(() => SomeMethod()).Take(500).Average();
フィードバックはありますか?それはかなり安定していて正確に見えますか、それとも何か見逃していますか?