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

Side by Side Diff: components/history/core/browser/top_sites_backend.cc

Issue 1005873011: Only record the execution time during startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 5 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "components/history/core/browser/top_sites_backend.h" 5 #include "components/history/core/browser/top_sites_backend.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 29 matching lines...) Expand all
40 const GetMostVisitedThumbnailsCallback& callback, 40 const GetMostVisitedThumbnailsCallback& callback,
41 base::CancelableTaskTracker* tracker) { 41 base::CancelableTaskTracker* tracker) {
42 scoped_refptr<MostVisitedThumbnails> thumbnails = new MostVisitedThumbnails(); 42 scoped_refptr<MostVisitedThumbnails> thumbnails = new MostVisitedThumbnails();
43 tracker->PostTaskAndReply( 43 tracker->PostTaskAndReply(
44 db_task_runner_.get(), FROM_HERE, 44 db_task_runner_.get(), FROM_HERE,
45 base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, this, 45 base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, this,
46 thumbnails), 46 thumbnails),
47 base::Bind(callback, thumbnails)); 47 base::Bind(callback, thumbnails));
48 } 48 }
49 49
50 void TopSitesBackend::UpdateTopSites(const TopSitesDelta& delta) { 50 void TopSitesBackend::UpdateTopSites(const TopSitesDelta& delta, bool startup) {
51 db_task_runner_->PostTask( 51 db_task_runner_->PostTask(
52 FROM_HERE, 52 FROM_HERE,
53 base::Bind(&TopSitesBackend::UpdateTopSitesOnDBThread, this, delta)); 53 base::Bind(&TopSitesBackend::UpdateTopSitesOnDBThread, this, delta,
54 startup));
54 } 55 }
55 56
56 void TopSitesBackend::SetPageThumbnail(const MostVisitedURL& url, 57 void TopSitesBackend::SetPageThumbnail(const MostVisitedURL& url,
57 int url_rank, 58 int url_rank,
58 const Images& thumbnail) { 59 const Images& thumbnail) {
59 db_task_runner_->PostTask( 60 db_task_runner_->PostTask(
60 FROM_HERE, base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this, 61 FROM_HERE, base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this,
61 url, url_rank, thumbnail)); 62 url, url_rank, thumbnail));
62 } 63 }
63 64
(...skipping 30 matching lines...) Expand all
94 void TopSitesBackend::GetMostVisitedThumbnailsOnDBThread( 95 void TopSitesBackend::GetMostVisitedThumbnailsOnDBThread(
95 scoped_refptr<MostVisitedThumbnails> thumbnails) { 96 scoped_refptr<MostVisitedThumbnails> thumbnails) {
96 DCHECK(db_task_runner_->BelongsToCurrentThread()); 97 DCHECK(db_task_runner_->BelongsToCurrentThread());
97 98
98 if (db_) { 99 if (db_) {
99 db_->GetPageThumbnails(&(thumbnails->most_visited), 100 db_->GetPageThumbnails(&(thumbnails->most_visited),
100 &(thumbnails->url_to_images_map)); 101 &(thumbnails->url_to_images_map));
101 } 102 }
102 } 103 }
103 104
104 void TopSitesBackend::UpdateTopSitesOnDBThread(const TopSitesDelta& delta) { 105 void TopSitesBackend::UpdateTopSitesOnDBThread(const TopSitesDelta& delta,
106 bool startup) {
105 TRACE_EVENT0("startup", "history::TopSitesBackend::UpdateTopSitesOnDBThread"); 107 TRACE_EVENT0("startup", "history::TopSitesBackend::UpdateTopSitesOnDBThread");
106 108
107 if (!db_) 109 if (!db_)
108 return; 110 return;
109 111
110 // TODO(yiyaoliu): Remove the histogram and related code when crbug/223430 is 112 // TODO(yiyaoliu): Remove the histogram and related code when crbug/223430 is
111 // fixed. 113 // fixed.
112 base::TimeTicks begin_time = base::TimeTicks::Now(); 114 base::TimeTicks begin_time = base::TimeTicks::Now();
113 115
114 for (size_t i = 0; i < delta.deleted.size(); ++i) 116 for (size_t i = 0; i < delta.deleted.size(); ++i)
115 db_->RemoveURL(delta.deleted[i]); 117 db_->RemoveURL(delta.deleted[i]);
116 118
117 for (size_t i = 0; i < delta.added.size(); ++i) 119 for (size_t i = 0; i < delta.added.size(); ++i)
118 db_->SetPageThumbnail(delta.added[i].url, delta.added[i].rank, Images()); 120 db_->SetPageThumbnail(delta.added[i].url, delta.added[i].rank, Images());
119 121
120 for (size_t i = 0; i < delta.moved.size(); ++i) 122 for (size_t i = 0; i < delta.moved.size(); ++i)
121 db_->UpdatePageRank(delta.moved[i].url, delta.moved[i].rank); 123 db_->UpdatePageRank(delta.moved[i].url, delta.moved[i].rank);
122 124
123 UMA_HISTOGRAM_TIMES("History.UpdateTopSitesOnDBThreadTime", 125 if (startup) {
124 base::TimeTicks::Now() - begin_time); 126 UMA_HISTOGRAM_TIMES("History.UpdateTopSitesOnDBThread_Startup_Time",
sky 2015/03/31 23:58:49 Didn't you want to put the size of delta in the na
yao 2015/04/01 21:43:00 The delta size is recorded in TopSitesImpl::SetTop
127 base::TimeTicks::Now() - begin_time);
128 }
125 } 129 }
126 130
127 void TopSitesBackend::SetPageThumbnailOnDBThread(const MostVisitedURL& url, 131 void TopSitesBackend::SetPageThumbnailOnDBThread(const MostVisitedURL& url,
128 int url_rank, 132 int url_rank,
129 const Images& thumbnail) { 133 const Images& thumbnail) {
130 if (!db_) 134 if (!db_)
131 return; 135 return;
132 136
133 db_->SetPageThumbnail(url, url_rank, thumbnail); 137 db_->SetPageThumbnail(url, url_rank, thumbnail);
134 } 138 }
135 139
136 void TopSitesBackend::ResetDatabaseOnDBThread(const base::FilePath& file_path) { 140 void TopSitesBackend::ResetDatabaseOnDBThread(const base::FilePath& file_path) {
137 DCHECK(db_task_runner_->BelongsToCurrentThread()); 141 DCHECK(db_task_runner_->BelongsToCurrentThread());
138 db_.reset(NULL); 142 db_.reset(NULL);
139 sql::Connection::Delete(db_path_); 143 sql::Connection::Delete(db_path_);
140 db_.reset(new TopSitesDatabase()); 144 db_.reset(new TopSitesDatabase());
141 InitDBOnDBThread(db_path_); 145 InitDBOnDBThread(db_path_);
142 } 146 }
143 147
144 } // namespace history 148 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698