public void MergeFrom(ClientStats other) { if (other == null) { return; } if (other.latencies_ != null) { if (latencies_ == null) { latencies_ = new global::Grpc.Testing.HistogramData(); } Latencies.MergeFrom(other.Latencies); } if (other.TimeElapsed != 0D) { TimeElapsed = other.TimeElapsed; } if (other.TimeUser != 0D) { TimeUser = other.TimeUser; } if (other.TimeSystem != 0D) { TimeSystem = other.TimeSystem; } requestResults_.Add(other.requestResults_); }
public override int GetHashCode() { int hash = 1; if (latencies_ != null) { hash ^= Latencies.GetHashCode(); } if (TimeElapsed != 0D) { hash ^= TimeElapsed.GetHashCode(); } if (TimeUser != 0D) { hash ^= TimeUser.GetHashCode(); } if (TimeSystem != 0D) { hash ^= TimeSystem.GetHashCode(); } hash ^= requestResults_.GetHashCode(); if (CqPollCount != 0UL) { hash ^= CqPollCount.GetHashCode(); } return(hash); }
public void Register(bool end) { Latencies.Add(_watchser.ElapsedMilliseconds); if (end) { _watchser.Stop(); } else { _watchser.Restart(); } }
public override int GetHashCode() { int hash = 1; if (latencies_ != null) { hash ^= Latencies.GetHashCode(); } if (TimeElapsed != 0D) { hash ^= TimeElapsed.GetHashCode(); } if (TimeUser != 0D) { hash ^= TimeUser.GetHashCode(); } if (TimeSystem != 0D) { hash ^= TimeSystem.GetHashCode(); } return(hash); }
public void PrintResults() { var sortedlatencies = Latencies.DefaultIfEmpty(0).OrderByDescending(x => x).ToList(); Console.WriteLine($"[{Name}], Operations, {Latencies.Count}"); Console.WriteLine( $"[{Name}], AverageLatency(us), {Latencies.DefaultIfEmpty(0).Average() * 1000}"); Console.WriteLine($"[{Name}], LatencyVariance(us), {Variance(sortedlatencies) * 1000}"); Console.WriteLine( $"[{Name}], MinLatency(us), {sortedlatencies.LastOrDefault() * 1000}"); Console.WriteLine( $"[{Name}], MaxLatency(us), {sortedlatencies.FirstOrDefault() * 1000}"); Console.WriteLine( $"[{Name}], 50thPercentileLatency(us), {sortedlatencies.Skip((int) Math.Floor(Latencies.Count * .5)).First() * 1000}"); Console.WriteLine( $"[{Name}], 95thPercentileLatency(us), {sortedlatencies.Skip((int) Math.Floor(Latencies.Count * .05)).First() * 1000}"); Console.WriteLine( $"[{Name}], 99thPercentileLatency(us), {sortedlatencies.Skip((int) Math.Floor(Latencies.Count * .01)).First() * 1000}"); Console.WriteLine( $"[{Name}], 99.9thPercentileLatency(us), {sortedlatencies.Skip((int) Math.Floor(Latencies.Count * .001)).First() * 1000}"); Console.WriteLine($"[{Name}], Return=OK, {Latencies.Count}"); //bucket. var sortedLatencies = Latencies.OrderBy(x => x).ToList(); var latencyIndex = 0; var bucket = 0; for (; bucket < GetOptionWithDefault("histogram.buckets", 0L); bucket++) { var count = 0; while (latencyIndex < sortedLatencies.Count && sortedLatencies[latencyIndex] <= bucket) { count++; latencyIndex++; } Console.WriteLine($"[{Name}], {bucket}, {count}"); } Console.WriteLine($"[{Name}], >{bucket}, {sortedLatencies.Count - latencyIndex}"); }
private async void GetLatenciesAsync() { var localLatencies = new ObservableCollection <NameValue>(); await Task.Run(() => { // Increment by 50 for (int index = 50; index <= 500; index += 50) { if (index == 200) { localLatencies.Add(new NameValue { Name = index + " ms (" + Application.Current.FindResource("Language_Default").ToString().ToLower() + ")", Value = index }); } else { localLatencies.Add(new NameValue { Name = index + " ms", Value = index }); } } }); this.Latencies = localLatencies; NameValue localSelectedLatency = null; await Task.Run(() => localSelectedLatency = Latencies.Where((pa) => pa.Value == XmlSettingsClient.Instance.Get <int>("Playback", "AudioLatency")).Select((pa) => pa).First()); this.SelectedLatency = localSelectedLatency; }