Ejemplo n.º 1
0
        public void AddStart(ETWEventClrGCStart start)
        {
            if (startEvents.Count >= maxUnmergedEventsCount)
            {
                Remove(startEvents.First);
            }

            Add(start);
        }
Ejemplo n.º 2
0
 internal GCInfo(ETWEventClrGCStart start, ETWEventClrGCEnd end)
 {
     StartTimestamp = start.Timestamp;
     Duration       = end.Timestamp - start.Timestamp;
     Depth          = start.Depth;
     Count          = start.Count;
     // we use custom enums here because otherwise
     // users must reference TraceEvents directly
     Type      = (GCType)start.Type;
     Reason    = (GCReason)start.Reason;
     ProcessId = start.ProcessId;
 }
Ejemplo n.º 3
0
 private void Add(ETWEventClrGCStart startEvent)
 {
     if (cachedNode == null)
     {
         startEvents.AddLast(startEvent);
     }
     else
     {
         cachedNode.Value = startEvent;
         startEvents.AddLast(cachedNode);
         cachedNode = null;
     }
 }
Ejemplo n.º 4
0
 private static bool Corresponds(ETWEventClrGCStart start, ETWEventClrGCEnd end)
 {
     return(start.Count == end.Count && start.ProcessId == end.ProcessId && start.Depth == end.Depth);
 }
Ejemplo n.º 5
0
 private void OnGcStart(ETWEventClrGCStart obj)
 {
     gcEventsMerger.AddStart(obj);
 }