| Index: net/quic/quic_default_packet_writer.cc
|
| diff --git a/net/quic/quic_default_packet_writer.cc b/net/quic/quic_default_packet_writer.cc
|
| index d851dfb74bcbcb7e5248352b17a0ee9b85901e3b..177d2926ec06e91f8ae68b2c914fca072c3ed74f 100644
|
| --- a/net/quic/quic_default_packet_writer.cc
|
| +++ b/net/quic/quic_default_packet_writer.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| +#include "base/metrics/histogram.h"
|
| #include "base/metrics/sparse_histogram.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| @@ -24,12 +25,14 @@ QuicDefaultPacketWriter::QuicDefaultPacketWriter(DatagramClientSocket* socket)
|
| QuicDefaultPacketWriter::~QuicDefaultPacketWriter() {}
|
|
|
| WriteResult QuicDefaultPacketWriter::WritePacket(
|
| - const char* buffer, size_t buf_len,
|
| + const char* buffer,
|
| + size_t buf_len,
|
| const net::IPAddressNumber& self_address,
|
| const net::IPEndPoint& peer_address) {
|
| scoped_refptr<StringIOBuffer> buf(
|
| new StringIOBuffer(std::string(buffer, buf_len)));
|
| DCHECK(!IsWriteBlocked());
|
| + base::TimeTicks now = base::TimeTicks::Now();
|
| int rv = socket_->Write(buf.get(),
|
| buf_len,
|
| base::Bind(&QuicDefaultPacketWriter::OnWriteComplete,
|
| @@ -45,6 +48,13 @@ WriteResult QuicDefaultPacketWriter::WritePacket(
|
| }
|
| }
|
|
|
| + base::TimeDelta delta = base::TimeTicks::Now() - now;
|
| + if (status == WRITE_STATUS_OK) {
|
| + UMA_HISTOGRAM_TIMES("Net.QuicSession.PacketWriteTime.Synchronous", delta);
|
| + } else if (status == WRITE_STATUS_BLOCKED) {
|
| + UMA_HISTOGRAM_TIMES("Net.QuicSession.PacketWriteTime.Asynchronous", delta);
|
| + }
|
| +
|
| return WriteResult(status, rv);
|
| }
|
|
|
|
|