Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(728)

Side by Side Diff: net/http/http_network_session.cc

Issue 2560593002: Make HttpNetworkSession::DumpMemoryStats attribute memory usage correctly (Closed)
Patch Set: self review Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | net/url_request/url_request_context_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_network_session.h" 5 #include "net/http/http_network_session.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256); 379 server_config->token_binding_params.push_back(TB_PARAM_ECDSAP256);
380 } 380 }
381 } 381 }
382 382
383 void HttpNetworkSession::DumpMemoryStats( 383 void HttpNetworkSession::DumpMemoryStats(
384 base::trace_event::ProcessMemoryDump* pmd, 384 base::trace_event::ProcessMemoryDump* pmd,
385 const std::string& parent_absolute_name) const { 385 const std::string& parent_absolute_name) const {
386 std::string name = base::StringPrintf("net/http_network_session_%p", this); 386 std::string name = base::StringPrintf("net/http_network_session_%p", this);
387 base::trace_event::MemoryAllocatorDump* http_network_session_dump = 387 base::trace_event::MemoryAllocatorDump* http_network_session_dump =
388 pmd->GetAllocatorDump(name); 388 pmd->GetAllocatorDump(name);
389 // If memory dump already exists, it means that this is not the first 389 if (http_network_session_dump == nullptr) {
390 // DumpMemoryStats() invocation on this object and it is reached by another 390 http_network_session_dump = pmd->CreateAllocatorDump(name);
391 // "parent." If that's the case, add an ownership edge and return early. 391 normal_socket_pool_manager_->DumpMemoryStats(
392 // This is needed because URLRequestContexts can share an HttpNetworkSession. 392 pmd, http_network_session_dump->absolute_name());
393 if (http_network_session_dump != nullptr) { 393 spdy_session_pool_.DumpMemoryStats(
394 pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(), 394 pmd, http_network_session_dump->absolute_name());
395 http_network_session_dump->guid());
396
397 return;
398 } 395 }
399 http_network_session_dump = pmd->CreateAllocatorDump(name); 396 // Create an empty row under parent's dump so size can be attributed correctly
400 normal_socket_pool_manager_->DumpMemoryStats( 397 // if |this| is shared between URLRequestContexts.
401 pmd, http_network_session_dump->absolute_name()); 398 base::trace_event::MemoryAllocatorDump* empty_row_dump =
402 spdy_session_pool_.DumpMemoryStats( 399 pmd->CreateAllocatorDump(base::StringPrintf(
403 pmd, http_network_session_dump->absolute_name()); 400 "%s/http_network_session", parent_absolute_name.c_str()));
404 pmd->AddOwnershipEdge(pmd->GetAllocatorDump(parent_absolute_name)->guid(), 401 pmd->AddOwnershipEdge(empty_row_dump->guid(),
405 http_network_session_dump->guid()); 402 http_network_session_dump->guid());
406 } 403 }
407 404
408 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager( 405 ClientSocketPoolManager* HttpNetworkSession::GetSocketPoolManager(
409 SocketPoolType pool_type) { 406 SocketPoolType pool_type) {
410 switch (pool_type) { 407 switch (pool_type) {
411 case NORMAL_SOCKET_POOL: 408 case NORMAL_SOCKET_POOL:
412 return normal_socket_pool_manager_.get(); 409 return normal_socket_pool_manager_.get();
413 case WEBSOCKET_SOCKET_POOL: 410 case WEBSOCKET_SOCKET_POOL:
414 return websocket_socket_pool_manager_.get(); 411 return websocket_socket_pool_manager_.get();
(...skipping 28 matching lines...) Expand all
443 break; 440 break;
444 case base::MemoryState::SUSPENDED: 441 case base::MemoryState::SUSPENDED:
445 // Note: Not supported at present. Fall through. 442 // Note: Not supported at present. Fall through.
446 case base::MemoryState::UNKNOWN: 443 case base::MemoryState::UNKNOWN:
447 NOTREACHED(); 444 NOTREACHED();
448 break; 445 break;
449 } 446 }
450 } 447 }
451 448
452 } // namespace net 449 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/url_request/url_request_context_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698