OLD | NEW |
---|---|
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/socket/client_socket_pool_base.h" | 5 #include "net/socket/client_socket_pool_base.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
699 } | 699 } |
700 dict->Set("groups", all_groups_dict); | 700 dict->Set("groups", all_groups_dict); |
701 return dict; | 701 return dict; |
702 } | 702 } |
703 | 703 |
704 void ClientSocketPoolBaseHelper::DumpMemoryStats( | 704 void ClientSocketPoolBaseHelper::DumpMemoryStats( |
705 base::trace_event::ProcessMemoryDump* pmd, | 705 base::trace_event::ProcessMemoryDump* pmd, |
706 const std::string& parent_dump_absolute_name) const { | 706 const std::string& parent_dump_absolute_name) const { |
707 base::trace_event::MemoryAllocatorDump* socket_pool_dump = nullptr; | 707 base::trace_event::MemoryAllocatorDump* socket_pool_dump = nullptr; |
708 size_t socket_count = 0; | 708 size_t socket_count = 0; |
709 size_t total_size = 0; | |
710 size_t buffer_size = 0; | |
711 size_t cert_count = 0; | |
712 size_t serialized_cert_size = 0; | |
713 StreamSocket::SocketMemoryStats aggregated_stats; | |
eroman
2017/01/11 02:19:58
Were you intending to use |aggregated_stats| in pl
xunjieli
2017/01/11 20:05:07
Done. Good catch! sorry about that.
| |
709 for (const auto& kv : group_map_) { | 714 for (const auto& kv : group_map_) { |
710 for (const auto& socket : kv.second->idle_sockets()) { | 715 for (const auto& socket : kv.second->idle_sockets()) { |
711 // Only create a MemoryAllocatorDump if there is at least one idle socket | 716 // Only create a MemoryAllocatorDump if there is at least one idle socket |
712 if (!socket_pool_dump) { | 717 if (!socket_pool_dump) { |
eroman
2017/01/11 02:19:58
I think it would make sense to extract this outsid
xunjieli
2017/01/11 20:05:07
Done. Thanks!
| |
713 socket_pool_dump = pmd->CreateAllocatorDump(base::StringPrintf( | 718 socket_pool_dump = pmd->CreateAllocatorDump(base::StringPrintf( |
714 "%s/socket_pool", parent_dump_absolute_name.c_str())); | 719 "%s/socket_pool", parent_dump_absolute_name.c_str())); |
715 } | 720 } |
716 socket.socket->DumpMemoryStats(pmd, socket_pool_dump->absolute_name()); | 721 StreamSocket::SocketMemoryStats stats; |
722 socket.socket->DumpMemoryStats(&stats); | |
723 total_size += stats.total_size; | |
724 buffer_size += stats.buffer_size; | |
725 cert_count += stats.cert_count; | |
726 serialized_cert_size += stats.serialized_cert_size; | |
717 ++socket_count; | 727 ++socket_count; |
718 } | 728 } |
719 } | 729 } |
720 if (socket_pool_dump) { | 730 if (socket_pool_dump) { |
721 socket_pool_dump->AddScalar( | 731 socket_pool_dump->AddScalar( |
732 base::trace_event::MemoryAllocatorDump::kNameSize, | |
733 base::trace_event::MemoryAllocatorDump::kUnitsBytes, total_size); | |
734 socket_pool_dump->AddScalar( | |
722 base::trace_event::MemoryAllocatorDump::kNameObjectCount, | 735 base::trace_event::MemoryAllocatorDump::kNameObjectCount, |
723 base::trace_event::MemoryAllocatorDump::kUnitsObjects, socket_count); | 736 base::trace_event::MemoryAllocatorDump::kUnitsObjects, socket_count); |
737 socket_pool_dump->AddScalar( | |
738 "buffer_size", base::trace_event::MemoryAllocatorDump::kUnitsBytes, | |
739 buffer_size); | |
740 socket_pool_dump->AddScalar( | |
741 "cert_count", base::trace_event::MemoryAllocatorDump::kUnitsObjects, | |
742 cert_count); | |
743 socket_pool_dump->AddScalar( | |
744 "serialized_cert_size", | |
745 base::trace_event::MemoryAllocatorDump::kUnitsBytes, | |
746 serialized_cert_size); | |
724 } | 747 } |
725 } | 748 } |
726 | 749 |
727 bool ClientSocketPoolBaseHelper::IdleSocket::IsUsable() const { | 750 bool ClientSocketPoolBaseHelper::IdleSocket::IsUsable() const { |
728 if (socket->WasEverUsed()) | 751 if (socket->WasEverUsed()) |
729 return socket->IsConnectedAndIdle(); | 752 return socket->IsConnectedAndIdle(); |
730 return socket->IsConnected(); | 753 return socket->IsConnected(); |
731 } | 754 } |
732 | 755 |
733 void ClientSocketPoolBaseHelper::CleanupIdleSockets(bool force) { | 756 void ClientSocketPoolBaseHelper::CleanupIdleSockets(bool force) { |
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1408 // If there are no more requests, kill the backup timer. | 1431 // If there are no more requests, kill the backup timer. |
1409 if (pending_requests_.empty()) | 1432 if (pending_requests_.empty()) |
1410 backup_job_timer_.Stop(); | 1433 backup_job_timer_.Stop(); |
1411 request->CrashIfInvalid(); | 1434 request->CrashIfInvalid(); |
1412 return request; | 1435 return request; |
1413 } | 1436 } |
1414 | 1437 |
1415 } // namespace internal | 1438 } // namespace internal |
1416 | 1439 |
1417 } // namespace net | 1440 } // namespace net |
OLD | NEW |