예제 #1
0
        public void PrintStatistics(double sessionEndTimeInMs)
        {
            if (rpcSummary.Count == 0)
            {
                return;
            }
            var buffer = new StringBuilder();

            foreach (var summary in rpcSummary.AsEnumerable().OrderByDescending(kv => kv.Value))
            {
                if (buffer.Length != 0)
                {
                    buffer.AppendLine();
                }
                buffer.Append($"endpoint: {summary.Key}, connections: {summary.Value}");
            }
            traceOutput.WriteSummary($"RPC ({pid})", buffer.ToString());
        }
예제 #2
0
        public void PrintStatistics(double sessionEndTimeInMs)
        {
            if (networkIoSummary.Count == 0)
            {
                return;
            }
            var buffer = new StringBuilder();

            foreach (var summary in networkIoSummary.OrderByDescending(kv => kv.Value.Total))
            {
                if (buffer.Length != 0)
                {
                    buffer.AppendLine();
                }
                buffer.Append($"{summary.Key} --> S: {summary.Value.Send:0} b / R: {summary.Value.Recv:0} b");
            }
            traceOutput.WriteSummary($"Network ({pid})", buffer.ToString());
        }
예제 #3
0
        public void PrintStatistics(double sessionEndTimeInMs)
        {
            if (connectedProcesses.Count == 0)
            {
                return;
            }
            var buffer = new StringBuilder();

            foreach (var process in connectedProcesses)
            {
                if (buffer.Length != 0)
                {
                    buffer.AppendLine();
                }
                buffer.Append($"endpoint: {process}");
            }
            traceOutput.WriteSummary($"ALPC ({pid})", buffer.ToString());
        }
예제 #4
0
        public void PrintStatistics(double sessionEndTimeInMs)
        {
            if (childProcesses.Count == 0)
            {
                return;
            }

            var buffer = new StringBuilder();

            foreach (var childProcess in childProcesses)
            {
                if (buffer.Length != 0)
                {
                    buffer.AppendLine();
                }
                buffer.Append($"{childProcess.Item2} ({childProcess.Item1})");
            }
            traceOutput.WriteSummary($"Child processes ({pid})", buffer.ToString());
        }
예제 #5
0
        private void PrintExecutionStatistics(string title, Dictionary <ulong, ExecutionStats> statsPerRoutine)
        {
            var statsPerDriver = new Dictionary <string, ExecutionStats>();

            foreach (var kv in statsPerRoutine)
            {
                // resolve the routing address
                var driverImage = loadedDrivers.FindImage(kv.Key);
                Debug.Assert(driverImage != null);
                if (driverImage != null)
                {
                    ExecutionStats driverStats;
                    if (!statsPerDriver.TryGetValue(driverImage.FileName, out driverStats))
                    {
                        statsPerDriver.Add(driverImage.FileName, kv.Value);
                    }
                    else
                    {
                        driverStats.Count           += kv.Value.Count;
                        driverStats.ElapsedTimeMSec += kv.Value.ElapsedTimeMSec;
                    }
                }
            }

            var buffer = new StringBuilder();

            // sort the stats by timespan
            foreach (var kv in statsPerDriver.OrderByDescending(kv => kv.Value.ElapsedTimeMSec))
            {
                if (buffer.Length != 0)
                {
                    buffer.AppendLine();
                }
                buffer.Append($"'{kv.Key}', total: {kv.Value.ElapsedTimeMSec:#,0.000}ms ({kv.Value.Count} event(s))");
            }
            traceOutput.WriteSummary(title, buffer.ToString());
        }
 public void PrintStatistics(double sessionEndTimeInMs)
 {
     output.WriteSummary("System Configuration", String.Join(Environment.NewLine, buffer));
 }