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

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

Issue 2807493002: Track STL containers in QuicStreamFactory::DumpMemoryStats (Closed)
Patch Set: address zhongyi@ comment Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/disk_cache_based_quic_server_info.h" 5 #include "net/http/disk_cache_based_quic_server_info.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/metrics/histogram_macros.h" 11 #include "base/metrics/histogram_macros.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/trace_event/memory_usage_estimator.h"
13 #include "net/base/completion_callback.h" 14 #include "net/base/completion_callback.h"
14 #include "net/base/io_buffer.h" 15 #include "net/base/io_buffer.h"
15 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
16 #include "net/http/http_cache.h" 17 #include "net/http/http_cache.h"
17 #include "net/http/http_network_session.h" 18 #include "net/http/http_network_session.h"
18 #include "net/quic/core/quic_server_id.h" 19 #include "net/quic/core/quic_server_id.h"
19 20
20 namespace net { 21 namespace net {
21 22
22 // Some APIs inside disk_cache take a handle that the caller must keep alive 23 // Some APIs inside disk_cache take a handle that the caller must keep alive
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 179
179 RecordQuicServerInfoStatus(QUIC_SERVER_INFO_EXTERNAL_CACHE_HIT); 180 RecordQuicServerInfoStatus(QUIC_SERVER_INFO_EXTERNAL_CACHE_HIT);
180 if (!backend_) { 181 if (!backend_) {
181 RecordQuicServerInfoFailure(PERSIST_NO_BACKEND_FAILURE); 182 RecordQuicServerInfoFailure(PERSIST_NO_BACKEND_FAILURE);
182 return; 183 return;
183 } 184 }
184 185
185 backend_->OnExternalCacheHit(key()); 186 backend_->OnExternalCacheHit(key());
186 } 187 }
187 188
189 size_t DiskCacheBasedQuicServerInfo::EstimateMemoryUsage() const {
190 return base::trace_event::EstimateMemoryUsage(new_data_) +
191 base::trace_event::EstimateMemoryUsage(pending_write_data_) +
192 base::trace_event::EstimateMemoryUsage(server_id_) +
193 (read_buffer_ == nullptr ? 0 : read_buffer_->size()) +
194 (write_buffer_ == nullptr ? 0 : write_buffer_->size()) +
195 base::trace_event::EstimateMemoryUsage(data_);
196 }
197
188 std::string DiskCacheBasedQuicServerInfo::key() const { 198 std::string DiskCacheBasedQuicServerInfo::key() const {
189 return "quicserverinfo:" + server_id_.ToString(); 199 return "quicserverinfo:" + server_id_.ToString();
190 } 200 }
191 201
192 void DiskCacheBasedQuicServerInfo::OnIOComplete(CacheOperationDataShim* unused, 202 void DiskCacheBasedQuicServerInfo::OnIOComplete(CacheOperationDataShim* unused,
193 int rv) { 203 int rv) {
194 DCHECK_NE(NONE, state_); 204 DCHECK_NE(NONE, state_);
195 rv = DoLoop(rv); 205 rv = DoLoop(rv);
196 if (rv == ERR_IO_PENDING) 206 if (rv == ERR_IO_PENDING)
197 return; 207 return;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 return backend_->OpenEntry(key(), &data_shim_->entry, io_callback_); 338 return backend_->OpenEntry(key(), &data_shim_->entry, io_callback_);
329 } 339 }
330 340
331 int DiskCacheBasedQuicServerInfo::DoRead() { 341 int DiskCacheBasedQuicServerInfo::DoRead() {
332 const int32_t size = entry_->GetDataSize(0 /* index */); 342 const int32_t size = entry_->GetDataSize(0 /* index */);
333 if (!size) { 343 if (!size) {
334 state_ = WAIT_FOR_DATA_READY_DONE; 344 state_ = WAIT_FOR_DATA_READY_DONE;
335 return OK; 345 return OK;
336 } 346 }
337 347
338 read_buffer_ = new IOBuffer(size); 348 read_buffer_ = new IOBufferWithSize(size);
339 state_ = READ_COMPLETE; 349 state_ = READ_COMPLETE;
340 return entry_->ReadData( 350 return entry_->ReadData(
341 0 /* index */, 0 /* offset */, read_buffer_.get(), size, io_callback_); 351 0 /* index */, 0 /* offset */, read_buffer_.get(), size, io_callback_);
342 } 352 }
343 353
344 int DiskCacheBasedQuicServerInfo::DoWrite() { 354 int DiskCacheBasedQuicServerInfo::DoWrite() {
345 write_buffer_ = new IOBuffer(new_data_.size()); 355 write_buffer_ = new IOBufferWithSize(new_data_.size());
346 memcpy(write_buffer_->data(), new_data_.data(), new_data_.size()); 356 memcpy(write_buffer_->data(), new_data_.data(), new_data_.size());
347 state_ = WRITE_COMPLETE; 357 state_ = WRITE_COMPLETE;
348 358
349 return entry_->WriteData(0 /* index */, 359 return entry_->WriteData(0 /* index */,
350 0 /* offset */, 360 0 /* offset */,
351 write_buffer_.get(), 361 write_buffer_.get(),
352 new_data_.size(), 362 new_data_.size(),
353 io_callback_, 363 io_callback_,
354 true /* truncate */); 364 true /* truncate */);
355 } 365 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 } else if (backend_->GetCacheType() == MEMORY_CACHE) { 441 } else if (backend_->GetCacheType() == MEMORY_CACHE) {
432 UMA_HISTOGRAM_ENUMERATION("Net.QuicDiskCache.FailureReason.MemoryCache", 442 UMA_HISTOGRAM_ENUMERATION("Net.QuicDiskCache.FailureReason.MemoryCache",
433 failure, NUM_OF_FAILURES); 443 failure, NUM_OF_FAILURES);
434 } else { 444 } else {
435 UMA_HISTOGRAM_ENUMERATION("Net.QuicDiskCache.FailureReason.DiskCache", 445 UMA_HISTOGRAM_ENUMERATION("Net.QuicDiskCache.FailureReason.DiskCache",
436 failure, NUM_OF_FAILURES); 446 failure, NUM_OF_FAILURES);
437 } 447 }
438 } 448 }
439 449
440 } // namespace net 450 } // namespace net
OLDNEW
« no previous file with comments | « net/http/disk_cache_based_quic_server_info.h ('k') | net/quic/chromium/properties_based_quic_server_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698