summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 01:39:58 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 01:39:58 +0000
commitda6b3f36d31857b29c597c2a4e39d5f67b73d8a8 (patch)
tree104e9abe4765ea31b24fde06de87e0dd783a4846 /net/http
parente54768661c55b6d69744335ab6316ade362fa6b8 (diff)
downloadchromium_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.cc47
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;
}