Index: net/quic/quic_connection_logger.cc |
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc |
index 2005b88165a6fe14d01db79edf278204689afa4b..4fb53725cc681dc73b02582bea7fa11755f7440e 100644 |
--- a/net/quic/quic_connection_logger.cc |
+++ b/net/quic/quic_connection_logger.cc |
@@ -769,6 +769,19 @@ void QuicConnectionLogger::AddTo21CumulativeHistogram( |
} |
} |
+float QuicConnectionLogger::PacketLossRate() const { |
Ryan Hamilton
2015/03/23 02:31:06
This is the received packet loss rate, right? (As
ramant (doing other things)
2015/03/24 03:07:22
Done.
|
+ // Never received a packet from server, very lossy connection? |
+ if (largest_received_packet_sequence_number_ == 0) |
+ return 1000.0f; |
+ QuicPacketSequenceNumber divisor = largest_received_packet_sequence_number_; |
+ QuicPacketSequenceNumber numerator = divisor - num_packets_received_; |
+ if (divisor < 100000) |
+ numerator *= 1000; |
+ else |
+ divisor /= 1000; |
+ return numerator / divisor; |
Ryan Hamilton
2015/03/23 02:31:06
So the reason this code uses * 1000 or / 1000 is b
ramant (doing other things)
2015/03/24 03:07:22
Done.
|
+} |
+ |
void QuicConnectionLogger::RecordAggregatePacketLossRate() const { |
// For short connections under 22 packets in length, we'll rely on the |
// Net.QuicSession.21CumulativePacketsReceived_* histogram to indicate packet |
@@ -779,17 +792,11 @@ void QuicConnectionLogger::RecordAggregatePacketLossRate() const { |
if (largest_received_packet_sequence_number_ <= 21) |
return; |
- QuicPacketSequenceNumber divisor = largest_received_packet_sequence_number_; |
- QuicPacketSequenceNumber numerator = divisor - num_packets_received_; |
- if (divisor < 100000) |
- numerator *= 1000; |
- else |
- divisor /= 1000; |
string prefix("Net.QuicSession.PacketLossRate_"); |
base::HistogramBase* histogram = base::Histogram::FactoryGet( |
prefix + connection_description_, 1, 1000, 75, |
base::HistogramBase::kUmaTargetedHistogramFlag); |
- histogram->Add(static_cast<base::HistogramBase::Sample>(numerator / divisor)); |
+ histogram->Add(static_cast<base::HistogramBase::Sample>(PacketLossRate())); |
} |
void QuicConnectionLogger::RecordLossHistograms() const { |