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

Unified Diff: chrome/browser/predictors/resource_prefetcher.cc

Issue 2688633002: predictors: Add prefetching hit/miss histograms. (Closed)
Patch Set: Add units. Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/predictors/resource_prefetcher.cc
diff --git a/chrome/browser/predictors/resource_prefetcher.cc b/chrome/browser/predictors/resource_prefetcher.cc
index a953216bd6d7d45124669b5740e9980b2f24c0cc..cc1d46616c556a1b415b8653e90a315283dd5634 100644
--- a/chrome/browser/predictors/resource_prefetcher.cc
+++ b/chrome/browser/predictors/resource_prefetcher.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/predictors/resource_prefetcher.h"
+#include <algorithm>
#include <iterator>
#include <utility>
@@ -25,6 +26,27 @@ static const size_t kResourceBufferSizeBytes = 50000;
namespace predictors {
+ResourcePrefetcher::PrefetchedRequestStats::PrefetchedRequestStats(
+ const GURL& resource_url,
+ bool was_cached,
+ size_t total_received_bytes)
+ : resource_url(resource_url),
+ was_cached(was_cached),
+ total_received_bytes(total_received_bytes) {}
+
+ResourcePrefetcher::PrefetchedRequestStats::~PrefetchedRequestStats() {}
+
+ResourcePrefetcher::PrefetcherStats::PrefetcherStats(const GURL& url)
+ : url(url) {}
+
+ResourcePrefetcher::PrefetcherStats::~PrefetcherStats() {}
+
+ResourcePrefetcher::PrefetcherStats::PrefetcherStats(
+ const PrefetcherStats& other)
+ : url(other.url),
+ start_time(other.start_time),
+ requests_stats(other.requests_stats) {}
+
ResourcePrefetcher::ResourcePrefetcher(
Delegate* delegate,
const ResourcePrefetchPredictorConfig& config,
@@ -35,7 +57,8 @@ ResourcePrefetcher::ResourcePrefetcher(
config_(config),
main_frame_url_(main_frame_url),
prefetched_count_(0),
- prefetched_bytes_(0) {
+ prefetched_bytes_(0),
+ stats_(base::MakeUnique<PrefetcherStats>(main_frame_url)) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
std::copy(urls.begin(), urls.end(), std::back_inserter(request_queue_));
@@ -50,6 +73,7 @@ void ResourcePrefetcher::Start() {
CHECK_EQ(state_, INITIALIZED);
state_ = RUNNING;
+ stats_->start_time = base::TimeTicks::Now();
TryToLaunchPrefetchRequests();
}
@@ -110,7 +134,7 @@ void ResourcePrefetcher::TryToLaunchPrefetchRequests() {
prefetched_bytes_ / 1024);
state_ = FINISHED;
- delegate_->ResourcePrefetcherFinished(this);
+ delegate_->ResourcePrefetcherFinished(this, std::move(stats_));
}
}
@@ -164,18 +188,21 @@ void ResourcePrefetcher::ReadFullResponse(net::URLRequest* request) {
FinishRequest(request);
return;
}
-
} while (bytes_read > 0);
}
void ResourcePrefetcher::RequestComplete(net::URLRequest* request) {
++prefetched_count_;
- prefetched_bytes_ += request->GetTotalReceivedBytes();
+ int64_t total_received_bytes = request->GetTotalReceivedBytes();
+ prefetched_bytes_ += total_received_bytes;
UMA_HISTOGRAM_ENUMERATION(
internal::kResourcePrefetchPredictorCachePatternHistogram,
request->response_info().cache_entry_status,
net::HttpResponseInfo::CacheEntryStatus::ENTRY_MAX);
+
+ stats_->requests_stats.emplace_back(request->url(), request->was_cached(),
+ total_received_bytes);
}
void ResourcePrefetcher::OnReceivedRedirect(

Powered by Google App Engine
This is Rietveld 408576698