private static long GetWallMicroseconds(this PerformanceDetails d, Func <string, bool> nodeFilter) { long totalMicroseconds = 0; foreach (var frame in d.Frames) { foreach (var node in frame.Nodes.Where(n => nodeFilter(n.Name))) { totalMicroseconds += node.WallMicroseconds; } } return(totalMicroseconds); }
//----< get Receiver and Sender running >---------------------------- public void displayPerformanceDetails(PerformanceDetails performanceDetails) { TextBlock item = new TextBlock(); rcvmsgs.Items.Clear(); StringBuilder displayMessage = new StringBuilder(); displayMessage.AppendLine("Reader Latency = " + performanceDetails.readerLatency + " seconds"); displayMessage.AppendLine("Writer Latency = " + performanceDetails.writerLatency + " seconds"); displayMessage.AppendLine("Server Throughput = " + performanceDetails.serverThroughput + " requests/second"); item.Text = displayMessage.ToString(); item.FontSize = 16; rcvmsgs.Items.Insert(0, item); }
public static long GetDecodeWallTicks(this PerformanceDetails d) => d.GetWallMicroseconds(n => n == "primitive_decoder") * TimeSpan.TicksPerSecond / 1000000;
public static long GetTotalWallTicks(this PerformanceDetails d) => d.GetWallMicroseconds(n => true) * TimeSpan.TicksPerSecond / 1000000;