private static string FormatEvent(PerfTraceEvent e, PerfTraceEvent root, PerfTraceEvent parent) { var builder = new StringBuilder(); FormatEventTimeStat(builder, e, root, parent); builder.Append($" {e.Type.Bold()} {e.Instance}"); return builder.ToString(); }
private static string FormatEvent(PerfTraceEvent e, PerfTraceEvent root, PerfTraceEvent parent) { var builder = new StringBuilder(); FormatEventTimeStat(builder, e, root, parent); builder.Append($" {e.Type.Bold()} {e.Instance}"); return(builder.ToString()); }
private static void FormatEventTimeStat(StringBuilder builder, PerfTraceEvent e, PerfTraceEvent root, PerfTraceEvent parent) { builder.Append("["); if (root != e) { AppendTime(builder, e.Duration.TotalSeconds / root.Duration.TotalSeconds, 0.2); } AppendTime(builder, e.Duration.TotalSeconds / parent?.Duration.TotalSeconds, 0.5); builder.Append($"{e.Duration.ToString("ss\\.fff\\s").Blue()}]"); }
private static void FormatEventTimeStat(StringBuilder builder, PerfTraceEvent e, PerfTraceEvent root, PerfTraceEvent parent) { builder.Append("["); if (root != e) { AppendTime(builder, e.Duration.TotalSeconds / root.Duration.TotalSeconds, 0.2); } AppendTime(builder, e.Duration.TotalSeconds / parent?.Duration.TotalSeconds, 0.5); builder.Append($"{e.Duration.ToString("ss\\.fff\\s").Blue()}]"); }
private static void Print(Reporter reporter, IEnumerable<PerfTraceEvent> events, PerfTraceEvent root, PerfTraceEvent parent, int padding = 0) { foreach (var e in events) { if (e.Duration < _minDuration) { continue; } reporter.Write(new string(' ', padding)); reporter.WriteLine(FormatEvent(e, root, parent)); Print(reporter, e.Children, root, e, padding + 2); } }
private static void Print(Reporter reporter, IEnumerable <PerfTraceEvent> events, PerfTraceEvent root, PerfTraceEvent parent, int padding = 0) { foreach (var e in events) { if (e.Duration < _minDuration) { continue; } reporter.Write(new string(' ', padding)); reporter.WriteLine(FormatEvent(e, root, parent)); Print(reporter, e.Children, root, e, padding + 2); } }
private void RecordTiming(PerfTraceEvent newEvent, TimerDisposable parent) { Interlocked.Exchange(ref _activeEvent, parent); _activeEvent.Children.Add(newEvent); }
private void RecordTiming(PerfTraceEvent newEvent, TimerDisposable parent) { Interlocked.Exchange(ref _activeEvent, parent); _activeEvent.Children.Add(newEvent); }