Example #1
0
        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();
 }