diff options
author | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-12 18:48:56 +0000 |
---|---|---|
committer | rvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-12 18:48:56 +0000 |
commit | b8c541b9d4f8769f5a191340f479c957f9886b38 (patch) | |
tree | 05f94fd7c06d9ed1e8ccaf1d40b80c2ae269391f /net/disk_cache/entry_impl.cc | |
parent | 5be517218a74dc9e291fb2821e2af9f01fb47e10 (diff) | |
download | chromium_src-b8c541b9d4f8769f5a191340f479c957f9886b38.zip chromium_src-b8c541b9d4f8769f5a191340f479c957f9886b38.tar.gz chromium_src-b8c541b9d4f8769f5a191340f479c957f9886b38.tar.bz2 |
Add a few histograms to the disk cache.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@735 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/disk_cache/entry_impl.cc')
-rw-r--r-- | net/disk_cache/entry_impl.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/net/disk_cache/entry_impl.cc b/net/disk_cache/entry_impl.cc index 58509c1..3d3ada2 100644 --- a/net/disk_cache/entry_impl.cc +++ b/net/disk_cache/entry_impl.cc @@ -29,6 +29,7 @@ #include "net/disk_cache/entry_impl.h" +#include "base/histogram.h" #include "base/message_loop.h" #include "base/string_util.h" #include "net/base/net_errors.h" @@ -122,6 +123,8 @@ EntryImpl::EntryImpl(BackendImpl* backend, Addr address) // written before). EntryImpl::~EntryImpl() { if (doomed_) { + UMA_HISTOGRAM_COUNTS(L"DiskCache.DeleteHeader", GetDataSize(0)); + UMA_HISTOGRAM_COUNTS(L"DiskCache.DeleteData", GetDataSize(1)); for (int index = 0; index < kKeyFileIndex; index++) { Addr address(entry_.Data()->data_addr[index]); if (address.is_initialized()) { @@ -239,6 +242,11 @@ int EntryImpl::ReadData(int index, int offset, char* buf, int buf_len, if (buf_len < 0) return net::ERR_INVALID_ARGUMENT; + Time start = Time::Now(); + static Histogram stats(L"DiskCache.ReadTime", TimeDelta::FromMilliseconds(1), + TimeDelta::FromSeconds(10), 50); + stats.SetFlags(kUmaTargetedHistogramFlag); + if (offset + buf_len > entry_size) buf_len = entry_size - offset; @@ -250,6 +258,7 @@ int EntryImpl::ReadData(int index, int offset, char* buf, int buf_len, // Complete the operation locally. DCHECK(kMaxBlockSize >= offset + buf_len); memcpy(buf , user_buffers_[index].get() + offset, buf_len); + stats.AddTime(Time::Now() - start); return buf_len; } @@ -281,6 +290,7 @@ int EntryImpl::ReadData(int index, int offset, char* buf, int buf_len, if (io_callback && completed) io_callback->Discard(); + stats.AddTime(Time::Now() - start); return (completed || !completion_callback) ? buf_len : net::ERR_IO_PENDING; } @@ -306,6 +316,11 @@ int EntryImpl::WriteData(int index, int offset, const char* buf, int buf_len, return net::ERR_FAILED; } + Time start = Time::Now(); + static Histogram stats(L"DiskCache.WriteTime", TimeDelta::FromMilliseconds(1), + TimeDelta::FromSeconds(10), 50); + stats.SetFlags(kUmaTargetedHistogramFlag); + // Read the size at this point (it may change inside prepare). int entry_size = entry_.Data()->data_size[index]; if (!PrepareTarget(index, offset, buf_len, truncate)) @@ -337,6 +352,7 @@ int EntryImpl::WriteData(int index, int offset, const char* buf, int buf_len, // Complete the operation locally. DCHECK(kMaxBlockSize >= offset + buf_len); memcpy(user_buffers_[index].get() + offset, buf, buf_len); + stats.AddTime(Time::Now() - start); return buf_len; } @@ -371,6 +387,7 @@ int EntryImpl::WriteData(int index, int offset, const char* buf, int buf_len, if (io_callback && completed) io_callback->Discard(); + stats.AddTime(Time::Now() - start); return (completed || !completion_callback) ? buf_len : net::ERR_IO_PENDING; } |