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

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

Issue 11637007: Split HttpCache miss tracking by Open and Create (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 | Annotate | Revision Log
« no previous file with comments | « net/http/http_cache_transaction.h ('k') | no next file » | 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_cache_transaction.h" 5 #include "net/http/http_cache_transaction.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #if defined(OS_POSIX) 9 #if defined(OS_POSIX)
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 result); 717 result);
718 cache_pending_ = false; 718 cache_pending_ = false;
719 719
720 if (!ShouldPassThrough()) { 720 if (!ShouldPassThrough()) {
721 cache_key_ = cache_->GenerateCacheKey(request_); 721 cache_key_ = cache_->GenerateCacheKey(request_);
722 722
723 // Requested cache access mode. 723 // Requested cache access mode.
724 if (effective_load_flags_ & LOAD_ONLY_FROM_CACHE) { 724 if (effective_load_flags_ & LOAD_ONLY_FROM_CACHE) {
725 mode_ = READ; 725 mode_ = READ;
726 } else if (effective_load_flags_ & LOAD_BYPASS_CACHE) { 726 } else if (effective_load_flags_ & LOAD_BYPASS_CACHE) {
727 UpdateTransactionPattern(PATTERN_NOT_COVERED);
727 mode_ = WRITE; 728 mode_ = WRITE;
728 } else { 729 } else {
729 mode_ = READ_WRITE; 730 mode_ = READ_WRITE;
730 } 731 }
731 732
732 // Downgrade to UPDATE if the request has been externally conditionalized. 733 // Downgrade to UPDATE if the request has been externally conditionalized.
733 if (external_validation_.initialized) { 734 if (external_validation_.initialized) {
734 if (mode_ & WRITE) { 735 if (mode_ & WRITE) {
735 // Strip off the READ_DATA bit (and maybe add back a READ_META bit 736 // Strip off the READ_DATA bit (and maybe add back a READ_META bit
736 // in case READ was off). 737 // in case READ was off).
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 } 954 }
954 955
955 if (request_->method == "PUT" || request_->method == "DELETE") { 956 if (request_->method == "PUT" || request_->method == "DELETE") {
956 DCHECK(mode_ == READ_WRITE || mode_ == WRITE); 957 DCHECK(mode_ == READ_WRITE || mode_ == WRITE);
957 mode_ = NONE; 958 mode_ = NONE;
958 next_state_ = STATE_SEND_REQUEST; 959 next_state_ = STATE_SEND_REQUEST;
959 return OK; 960 return OK;
960 } 961 }
961 962
962 if (mode_ == READ_WRITE) { 963 if (mode_ == READ_WRITE) {
964 miss_since_ = TimeTicks::Now();
963 mode_ = WRITE; 965 mode_ = WRITE;
964 next_state_ = STATE_CREATE_ENTRY; 966 next_state_ = STATE_CREATE_ENTRY;
965 return OK; 967 return OK;
966 } 968 }
967 if (mode_ == UPDATE) { 969 if (mode_ == UPDATE) {
968 // There is no cache entry to update; proceed without caching. 970 // There is no cache entry to update; proceed without caching.
969 mode_ = NONE; 971 mode_ = NONE;
970 next_state_ = STATE_SEND_REQUEST; 972 next_state_ = STATE_SEND_REQUEST;
971 return OK; 973 return OK;
972 } 974 }
(...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after
2484 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.CantConditionalize", 2486 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.CantConditionalize",
2485 before_send_time); 2487 before_send_time);
2486 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.CantConditionalize", 2488 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.CantConditionalize",
2487 before_send_percent); 2489 before_send_percent);
2488 break; 2490 break;
2489 } 2491 }
2490 case PATTERN_ENTRY_NOT_CACHED: { 2492 case PATTERN_ENTRY_NOT_CACHED: {
2491 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.NotCached", before_send_time); 2493 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.NotCached", before_send_time);
2492 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.NotCached", 2494 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.NotCached",
2493 before_send_percent); 2495 before_send_percent);
2496 DCHECK(!miss_since_.is_null());
2497 TimeDelta before_miss_time = miss_since_ - first_cache_access_since_;
2498 UMA_HISTOGRAM_TIMES("HttpCache.BeforeCreate.NotCached", before_miss_time);
2494 break; 2499 break;
2495 } 2500 }
2496 case PATTERN_ENTRY_VALIDATED: { 2501 case PATTERN_ENTRY_VALIDATED: {
2497 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.Validated", before_send_time); 2502 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.Validated", before_send_time);
2498 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.Validated", 2503 UMA_HISTOGRAM_PERCENTAGE("HttpCache.PercentBeforeSend.Validated",
2499 before_send_percent); 2504 before_send_percent);
2500 if (is_small_resource) { 2505 if (is_small_resource) {
2501 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.Validated.SmallResource", 2506 UMA_HISTOGRAM_TIMES("HttpCache.BeforeSend.Validated.SmallResource",
2502 before_send_time); 2507 before_send_time);
2503 UMA_HISTOGRAM_PERCENTAGE( 2508 UMA_HISTOGRAM_PERCENTAGE(
(...skipping 21 matching lines...) Expand all
2525 } 2530 }
2526 2531
2527 int HttpCache::Transaction::ResetCacheIOStart(int return_value) { 2532 int HttpCache::Transaction::ResetCacheIOStart(int return_value) {
2528 DCHECK(cache_io_start_.is_null()); 2533 DCHECK(cache_io_start_.is_null());
2529 if (return_value == ERR_IO_PENDING) 2534 if (return_value == ERR_IO_PENDING)
2530 cache_io_start_ = base::TimeTicks::Now(); 2535 cache_io_start_ = base::TimeTicks::Now();
2531 return return_value; 2536 return return_value;
2532 } 2537 }
2533 2538
2534 } // namespace net 2539 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_cache_transaction.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698