diff options
author | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 01:39:58 +0000 |
---|---|---|
committer | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 01:39:58 +0000 |
commit | da6b3f36d31857b29c597c2a4e39d5f67b73d8a8 (patch) | |
tree | 104e9abe4765ea31b24fde06de87e0dd783a4846 /net/http | |
parent | e54768661c55b6d69744335ab6316ade362fa6b8 (diff) | |
download | chromium_src-da6b3f36d31857b29c597c2a4e39d5f67b73d8a8.zip chromium_src-da6b3f36d31857b29c597c2a4e39d5f67b73d8a8.tar.gz chromium_src-da6b3f36d31857b29c597c2a4e39d5f67b73d8a8.tar.bz2 |
Http cache: Add more histograms to the infinite cache simulation.
1. Track total requests for ga.js
2. Dump the reuse count for various entry size groups.
Review URL: https://codereview.chromium.org/11896074
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178468 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r-- | net/http/infinite_cache.cc | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/net/http/infinite_cache.cc b/net/http/infinite_cache.cc index 70c72ab..b1010c6 100644 --- a/net/http/infinite_cache.cc +++ b/net/http/infinite_cache.cc @@ -211,6 +211,9 @@ void OnComplete(const net::CompletionCallback& callback, int* result) { callback.Run(*result); } +#define CACHE_COUNT_HISTOGRAM(name, count) \ + UMA_HISTOGRAM_CUSTOM_COUNTS(name, count, 0, kuint8max, 25) + } // namespace namespace BASE_HASH_NAMESPACE { @@ -528,6 +531,11 @@ void InfiniteCache::Worker::Process( if (data->details.flags & NO_STORE) UMA_HISTOGRAM_BOOLEAN("InfiniteCache.NoStore", true); + if (data->details.flags & (GA_JS_HTTP | GA_JS_HTTPS)) { + bool https = data->details.flags & GA_JS_HTTPS ? true : false; + UMA_HISTOGRAM_BOOLEAN("InfiniteCache.GaJs_Https", https); + } + // True if the first range of the http request was validated or used // unconditionally, false if it was not found in the cache, was updated, // or was found but was unconditionalizable. @@ -696,6 +704,7 @@ bool InfiniteCache::Worker::WriteData(PlatformFile file) { size_t offset = sizeof(Header); uint32 hash = adler32(0, Z_NULL, 0); int unused_entries = 0; + static bool first_time = true; DCHECK_EQ(header_->num_entries, static_cast<int32>(map_.size())); KeyMap::iterator iterator = map_.begin(); @@ -710,8 +719,22 @@ bool InfiniteCache::Worker::WriteData(PlatformFile file) { NOTREACHED(); return false; } - if (!iterator->second.use_count) + int use_count = iterator->second.use_count; + if (!use_count) unused_entries++; + + if (first_time) { + int response_size = iterator->second.response_size; + if (response_size < 16 * 1024) + CACHE_COUNT_HISTOGRAM("InfiniteCache.Reuse-16k", use_count); + else if (response_size < 128 * 1024) + CACHE_COUNT_HISTOGRAM("InfiniteCache.Reuse-128k", use_count); + else if (response_size < 2048 * 1024) + CACHE_COUNT_HISTOGRAM("InfiniteCache.Reuse-2M", use_count); + else + CACHE_COUNT_HISTOGRAM("InfiniteCache.Reuse-40M", use_count); + } + char* record = buffer.get() + i * kRecordSize; *reinterpret_cast<Key*>(record) = iterator->first; *reinterpret_cast<Details*>(record + sizeof(Key)) = iterator->second; @@ -734,6 +757,7 @@ bool InfiniteCache::Worker::WriteData(PlatformFile file) { offset += num_bytes; } base::FlushPlatformFile(file); // Ignore return value. + first_time = false; if (header_->num_entries) unused_entries = unused_entries * 100 / header_->num_entries; @@ -854,14 +878,12 @@ void InfiniteCache::Worker::RecordHit(const Details& old, Details* details) { details->use_count = old.use_count; if (details->use_count < kuint8max) details->use_count++; - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.UseCount", details->use_count, 0, - kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.UseCount", details->use_count); if (details->flags & GA_JS_HTTP) { - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.GaJsHttpUseCount", - details->use_count, 0, kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.GaJsHttpUseCount", details->use_count); } else if (details->flags & GA_JS_HTTPS) { - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.GaJsHttpsUseCount", - details->use_count, 0, kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.GaJsHttpsUseCount", + details->use_count); } } @@ -892,14 +914,13 @@ void InfiniteCache::Worker::RecordUpdate(const Details& old, Details* details) { if (details->update_count < kuint8max) details->update_count++; - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.UpdateCount", - details->update_count, 0, kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.UpdateCount", details->update_count); if (details->flags & GA_JS_HTTP) { - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.GaJsHttpUpdateCount", - details->update_count, 0, kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.GaJsHttpUpdateCount", + details->update_count); } else if (details->flags & GA_JS_HTTPS) { - UMA_HISTOGRAM_CUSTOM_COUNTS("InfiniteCache.GaJsHttpsUpdateCount", - details->update_count, 0, kuint8max, 25); + CACHE_COUNT_HISTOGRAM("InfiniteCache.GaJsHttpsUpdateCount", + details->update_count); } details->use_count = 0; } |