8 november 2011

Tijdsduur meten van bewerkingen

Stel dat je in een programma de duur van een operatie wil meten, bijvoorbeeld:

  • hoelang het duurt om een bestand in te lezen;
  • hoelang een databasebewerking duurt;
  • hoelang het tekenen van een complexe figuur duurt;

Een voor de hand liggende aanpak zou zijn om gebruik te maken van twee instanties van DateTime en hiervan het verschil (een TimeSpan object) af te drukken, zoals:

DateTime start = DateTime.Now;
FooMethodToMeasure();
DateTime stop = DateTime.Now;
Console.WriteLine("Duur {0} msec", (stop - start).TotalMilliseconds);

Deze manier van werkwijze zou echter niet nauwkeurig zijn (bron 1, bron 2), en daarom gebruik je beter de StopWatch klasse, die rechtstreeks via het besturingssysteem een timer voorziet. Let op: je moet wel de System.Diagnostics namespace importeren.

Stopwatch watch = new Stopwatch();
watch.Start();
FooMethodToMeasure();
Console.WriteLine("Duur {0} msec", watch.ElapsedMilliseconds);
watch.Stop();

Geen opmerkingen:

Een reactie posten