示例#1
0
 public override void AddInterimStep(PerformanceEvent performanceEvent, string stepName)
 {
     if (!this.IsEnabled(EventTracingLogger.Flags.Performance, EventTracingLogger.Level.Normal))
     {
         return;
     }
     int num = (int)EventTracingLogger.EventProvider.TraceEvent(PerformanceEventParser.GetGuidForEvent(performanceEvent), 0U, (object)1, (object)(PerformanceEventParser.GetMessageForEvent(performanceEvent) + " : " + stepName));
 }
示例#2
0
 public static Guid GetGuidForEvent(PerformanceEvent performanceEvent)
 {
     if (PerformanceEventParser.IdToMessageDictionary.ContainsKey(performanceEvent))
     {
         return(PerformanceEventParser.IdToGuidDictionary[performanceEvent]);
     }
     return(EventTracingLogger.InfoEventGuid);
 }
示例#3
0
 public static void LogPerformanceEvent(PerformanceEvent performanceEvent)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddLogEvent(performanceEvent);
     }
 }
示例#4
0
 public override void AddEndEvent(PerformanceEvent performanceEvent, string additionalInformation)
 {
     if (!this.IsEnabled(EventTracingLogger.Flags.Performance, EventTracingLogger.Level.Normal))
     {
         return;
     }
     int num = (int)EventTracingLogger.EventProvider.TraceEvent(PerformanceEventParser.GetGuidForEvent(performanceEvent), 2U, (object)1, (object)(PerformanceEventParser.GetMessageForEvent(performanceEvent) + ":" + additionalInformation));
 }
示例#5
0
 public static void StartPerformanceSequence(PerformanceEvent performanceEvent)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddStartEvent(performanceEvent);
     }
 }
示例#6
0
 public static void MarkInterimStep(PerformanceEvent performanceEvent, string stepName)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddInterimStep(performanceEvent, stepName);
     }
 }
示例#7
0
 public static void EndPerformanceSequence(PerformanceEvent performanceEvent, string additionalInformation)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddEndEvent(performanceEvent, additionalInformation);
     }
 }
示例#8
0
 public static string GetMessageForEvent(PerformanceEvent performanceEvent)
 {
     if (PerformanceEventParser.IdToMessageDictionary.ContainsKey(performanceEvent))
     {
         return(PerformanceEventParser.IdToMessageDictionary[performanceEvent]);
     }
     return(performanceEvent.ToString());
 }
示例#9
0
 public override void AddLogEvent(PerformanceEvent performanceEvent)
 {
     if (!this.IsEnabled(EventTracingLogger.Flags.Performance, EventTracingLogger.Level.Normal))
     {
         return;
     }
     int num = (int)EventTracingLogger.EventProvider.TraceEvent(PerformanceEventParser.GetGuidForEvent(performanceEvent), 0U, (object)1, (object)PerformanceEventParser.GetMessageForEvent(performanceEvent));
 }
示例#10
0
 public static void MeasurePerformanceUntilIdle(PerformanceEvent performanceEvent)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddStartEvent(performanceEvent);
     }
     PerformanceUtility.EndPerformanceSequenceOnIdle(performanceEvent);
 }
示例#11
0
 public static void MeasurePerformanceUntilRender(PerformanceEvent performanceEvent, string additionalInformation)
 {
     PerformanceLogger[] loggers = PerformanceUtility.Loggers;
     for (int i = 0; i < (int)loggers.Length; i++)
     {
         loggers[i].AddStartEvent(performanceEvent, additionalInformation);
     }
     PerformanceUtility.EndPerformanceSequenceAfterRender(performanceEvent, additionalInformation);
 }
示例#12
0
        public void Track(string eventName, TimeSpan time)
        {
            var e = new PerformanceEvent
            {
                UserId    = Utils.Helpers.Settings.UserId,
                EventName = eventName,
                Elapsed   = time.TotalMilliseconds
            };

            performanceStore.InsertAsync(e);
        }
示例#13
0
 public static void EndPerformanceSequenceAfterRender(PerformanceEvent performanceEvent, string additionalInformation)
 {
     if (Application.Current != null)
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new DispatcherOperationCallback((object arg) =>
         {
             PerformanceUtility.EndPerformanceSequence(performanceEvent, additionalInformation);
             return(null);
         }), null);
     }
 }
示例#14
0
 public static void EndPerformanceSequenceOnIdle(PerformanceEvent performanceEvent)
 {
     if (Application.Current != null)
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new DispatcherOperationCallback((object arg) =>
         {
             PerformanceUtility.EndPerformanceSequence(performanceEvent);
             return(null);
         }), null);
     }
 }
        public static void StartEvent(string name)
        {
            var e = new PerformanceEvent()
            {
                EventName = name
            };

            e.Start();

            // If we have not loaded the Cache yet, then temporary store the EventPattern.
            Model.Items.Add(e);
        }
示例#16
0
 public override void AddEndEvent(PerformanceEvent performanceEvent)
 {
     if (!this.profileOpened || !this.enabled)
     {
         return;
     }
     if (this.targetEvent != performanceEvent)
     {
         return;
     }
     try
     {
         OfficeProfiler.StopNow();
     }
     catch (DllNotFoundException ex)
     {
     }
 }
示例#17
0
        static PerformanceEventParser()
        {
            if (!PathHelper.FileExists(PerformanceEventParser.EventTableLocation))
            {
                return;
            }
            XmlDocument xmlDocument = new XmlDocument();

            using (XmlReader reader = XmlReader.Create(PerformanceEventParser.EventTableLocation))
                xmlDocument.Load(reader);
            foreach (XmlNode xmlNode in xmlDocument.ChildNodes[0])
            {
                string           str  = xmlNode.Attributes["message"].Value;
                Guid             guid = new Guid(xmlNode.Attributes["guid"].Value);
                PerformanceEvent key  = (PerformanceEvent)Enum.Parse(typeof(PerformanceEvent), xmlNode.Attributes["ID"].Value);
                PerformanceEventParser.IdToMessageDictionary.Add(key, str);
                PerformanceEventParser.IdToGuidDictionary.Add(key, guid);
            }
        }
示例#18
0
 public abstract void AddLogEvent(PerformanceEvent performanceEvent);
示例#19
0
 public override void AddLogEvent(PerformanceEvent performanceEvent)
 {
 }
示例#20
0
 public override void AddEndEvent(PerformanceEvent performanceEvent)
 {
     this.statistics[performanceEvent].Stop();
 }
示例#21
0
 public override void AddInterimStep(PerformanceEvent performanceEvent, string stepName)
 {
 }
示例#22
0
 public PerformanceSequenceToken(PerformanceEvent performanceEvent)
 {
     this.performanceEvent = performanceEvent;
     PerformanceUtility.StartPerformanceSequence(this.performanceEvent);
 }
示例#23
0
 public static void EnableEventProfile(PerformanceEvent targetEvent)
 {
     PerformanceUtility.profileLogger.EnableEvent(targetEvent);
 }
示例#24
0
 public static IDisposable PerformanceSequence(PerformanceEvent performanceEvent)
 {
     return(new PerformanceUtility.PerformanceSequenceToken(performanceEvent));
 }
示例#25
0
 public override void AddEndEvent(PerformanceEvent performanceEvent, string additionalInformation)
 {
     this.statistics[performanceEvent].Stop();
 }
示例#26
0
        public static void MeasurePerformanceUntilPipelinePostSceneUpdate(SelectionManager selectionManager, PerformanceEvent performanceEvent)
        {
            if (!PerformanceUtility.LoggingEnabled)
            {
                return;
            }
            PerformanceUtility.StartPerformanceSequence(performanceEvent);
            EventHandler listenAndUnhookEvent = (EventHandler)null;

            listenAndUnhookEvent = (EventHandler) delegate
            {
                PerformanceUtility.EndPerformanceSequence(performanceEvent);
                selectionManager.PostSceneUpdatePhase -= listenAndUnhookEvent;
            };
            selectionManager.PostSceneUpdatePhase += listenAndUnhookEvent;
        }
示例#27
0
 public abstract void AddStartEvent(PerformanceEvent performanceEvent);
示例#28
0
 public abstract void AddInterimStep(PerformanceEvent performanceEvent, string stepName);
示例#29
0
 public abstract void AddEndEvent(PerformanceEvent performanceEvent, string additionalInformation);
示例#30
0
 public PerformanceEventStatistics(PerformanceEvent performanceEvent)
 {
     this.performanceEvent = performanceEvent;
 }