Chromium Code Reviews| Index: net/spdy/spdy_session.cc |
| diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc |
| index a7287cdecf96f9740a1e0e9f89c7f8de61049758..13a63ee23ad7483890e02163a450a271ae30202a 100644 |
| --- a/net/spdy/spdy_session.cc |
| +++ b/net/spdy/spdy_session.cc |
| @@ -25,6 +25,7 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "base/time/time.h" |
| +#include "base/trace_event/memory_usage_estimator.h" |
| #include "base/trace_event/trace_event.h" |
| #include "base/values.h" |
| #include "crypto/ec_private_key.h" |
| @@ -559,6 +560,10 @@ base::WeakPtr<SpdyStream> SpdyStreamRequest::ReleaseStream() { |
| return stream; |
| } |
| +size_t SpdyStreamRequest::EstimateMemoryUsage() const { |
| + return base::trace_event::EstimateItemMemoryUsage(url_); |
| +} |
| + |
| void SpdyStreamRequest::OnRequestCompleteSuccess( |
| const base::WeakPtr<SpdyStream>& stream) { |
| DCHECK(session_); |
| @@ -1059,10 +1064,28 @@ bool SpdySession::CloseOneIdleConnection() { |
| return false; |
| } |
| -void SpdySession::DumpMemoryStats(StreamSocket::SocketMemoryStats* stats, |
| - bool* is_session_active) const { |
| +size_t SpdySession::DumpMemoryStats(StreamSocket::SocketMemoryStats* stats, |
| + bool* is_session_active) const { |
| *is_session_active = is_active(); |
| connection_->DumpMemoryStats(stats); |
| + size_t memory_estimate = |
| + stats->total_size + kReadBufferSize + |
| + base::trace_event::EstimateMemoryUsage(spdy_session_key_) + |
| + base::trace_event::EstimateMemoryUsage(pooled_aliases_) + |
| + base::trace_event::EstimateMemoryUsage(active_streams_) + |
| + base::trace_event::EstimateMemoryUsage(created_streams_) + |
| + base::trace_event::EstimateMemoryUsage(write_queue_) + |
| + base::trace_event::EstimateMemoryUsage(initial_settings_); |
| + if (in_flight_write_) |
| + memory_estimate += base::trace_event::EstimateMemoryUsage(in_flight_write_); |
| + if (buffered_spdy_framer_) { |
| + memory_estimate += |
| + base::trace_event::EstimateMemoryUsage(buffered_spdy_framer_); |
| + } |
| + // TODO(xunjieli): crbug.com/669108. Track |pending_create_stream_queue_|, |
|
Bence
2017/02/02 14:15:19
Nit: https://crbug.com/669108. For the convenienc
xunjieli
2017/02/02 14:53:42
Done.
|
| + // |stream_send_unstall_queue_| after std::deque is supported in |
| + // memory_usage_estimator.h. |
| + return memory_estimate; |
| } |
| void SpdySession::EnqueueStreamWrite( |