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

Unified Diff: net/socket/client_socket_pool_base.cc

Issue 2623803002: Avoid creating MemoryAllocatorDump for individual sockets (Closed)
Patch Set: Address Eric's comments Created 3 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/socket/client_socket_handle.cc ('k') | net/socket/ssl_client_socket_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/client_socket_pool_base.cc
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 252ca294d4c76536297089003726cca5dac043d1..c5427ccf7a621906788859ab7d4bb647d90539ed 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -704,23 +704,43 @@ ClientSocketPoolBaseHelper::GetInfoAsValue(const std::string& name,
void ClientSocketPoolBaseHelper::DumpMemoryStats(
base::trace_event::ProcessMemoryDump* pmd,
const std::string& parent_dump_absolute_name) const {
- base::trace_event::MemoryAllocatorDump* socket_pool_dump = nullptr;
size_t socket_count = 0;
+ size_t total_size = 0;
+ size_t buffer_size = 0;
+ size_t cert_count = 0;
+ size_t serialized_cert_size = 0;
for (const auto& kv : group_map_) {
for (const auto& socket : kv.second->idle_sockets()) {
- // Only create a MemoryAllocatorDump if there is at least one idle socket
- if (!socket_pool_dump) {
- socket_pool_dump = pmd->CreateAllocatorDump(base::StringPrintf(
- "%s/socket_pool", parent_dump_absolute_name.c_str()));
- }
- socket.socket->DumpMemoryStats(pmd, socket_pool_dump->absolute_name());
+ StreamSocket::SocketMemoryStats stats;
+ socket.socket->DumpMemoryStats(&stats);
+ total_size += stats.total_size;
+ buffer_size += stats.buffer_size;
+ cert_count += stats.cert_count;
+ serialized_cert_size += stats.serialized_cert_size;
++socket_count;
}
}
- if (socket_pool_dump) {
+ // Only create a MemoryAllocatorDump if there is at least one idle socket
+ if (socket_count > 0) {
+ base::trace_event::MemoryAllocatorDump* socket_pool_dump =
+ pmd->CreateAllocatorDump(base::StringPrintf(
+ "%s/socket_pool", parent_dump_absolute_name.c_str()));
+ socket_pool_dump->AddScalar(
+ base::trace_event::MemoryAllocatorDump::kNameSize,
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, total_size);
socket_pool_dump->AddScalar(
base::trace_event::MemoryAllocatorDump::kNameObjectCount,
base::trace_event::MemoryAllocatorDump::kUnitsObjects, socket_count);
+ socket_pool_dump->AddScalar(
+ "buffer_size", base::trace_event::MemoryAllocatorDump::kUnitsBytes,
+ buffer_size);
+ socket_pool_dump->AddScalar(
+ "cert_count", base::trace_event::MemoryAllocatorDump::kUnitsObjects,
+ cert_count);
+ socket_pool_dump->AddScalar(
+ "serialized_cert_size",
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes,
+ serialized_cert_size);
}
}
« no previous file with comments | « net/socket/client_socket_handle.cc ('k') | net/socket/ssl_client_socket_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698