public void Test002() { var tracker = new PerformanceEventTracker(); var setup = tracker.NextEvent().WhenComplete(e => Console.WriteLine("Setup completed in {0}", e.TimeData.ElapsedMilliseconds)); /* execute interesting code here */ System.Threading.Thread.Sleep(new System.Random().Next(10, 20)); var totalTimer = tracker.NextEvent().WhenComplete(e => Console.WriteLine("Loop completed in {0}", e.TimeData.ElapsedMilliseconds)); var loopInitTimer = tracker.PushFirstEvent().WhenComplete(e => Console.WriteLine("Loop init in {0}", e.TimeData.ElapsedMilliseconds)); for (int i = 0; i < 100; i++) { var loopTimer = tracker.NextEvent().WhenComplete(e => Console.WriteLine("Loop timer in {0}", e.TimeData.ElapsedMilliseconds)); /* execute interesting code here */ System.Threading.Thread.Sleep(new System.Random().Next(10, 20)); } tracker.PopLastEvent().WhenComplete(e => Console.WriteLine("Loop teardown in {0}", e.TimeData.ElapsedMilliseconds)); var teardown = tracker.NextEvent().WhenComplete(e => Console.WriteLine("Teardown in {0}", e.TimeData.ElapsedMilliseconds)); /* execute interesting code here */ System.Threading.Thread.Sleep(new System.Random().Next(10, 20)); tracker.Complete().WhenComplete(e => Console.WriteLine("Total duration {0}", e.TimeData.ElapsedMilliseconds)); }
public InternalData(ILogStream log) { DefaultCompletionBehaviors = new List <Action <IUnstoppablePerformanceEvent, ILogStream, ILogToken, LoggingLevel> >(); DefaultInitializationBehaviors = new List <Action <IUnstoppablePerformanceEvent, ILogStream, ILogToken, LoggingLevel> >(); Tracker = new PerformanceEventTracker(); }