diff options
author | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 18:13:12 +0000 |
---|---|---|
committer | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 18:13:12 +0000 |
commit | 70eb8ed90fcea370e567666632ee225d95caee0b (patch) | |
tree | 43559a0fd3e85d01daa5225f63ce6a2dd3ad5e5c /chrome/browser/sessions/session_service.cc | |
parent | 33b7c47777e2b88e6a876cc48a562f03d5dddae4 (diff) | |
download | chromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.zip chromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.tar.gz chromium_src-70eb8ed90fcea370e567666632ee225d95caee0b.tar.bz2 |
Add histogram coverage of session service Save() operations, namely the time between successive Save() operations.
BUG=none
TEST=about:histograms
Review URL: http://codereview.chromium.org/2732005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49420 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions/session_service.cc')
-rw-r--r-- | chrome/browser/sessions/session_service.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc index ca5f183..da7508b 100644 --- a/chrome/browser/sessions/session_service.cc +++ b/chrome/browser/sessions/session_service.cc @@ -428,6 +428,14 @@ SessionService::Handle SessionService::GetCurrentSession( } } +void SessionService::Save() { + bool had_commands = !pending_commands().empty(); + BaseSessionService::Save(); + if (had_commands) + RecordSaveHistogramData(); +} + + void SessionService::Init() { // Register for the notifications we're interested in. registrar_.Add(this, NotificationType::TAB_PARENTED, @@ -1309,3 +1317,28 @@ Browser::Type SessionService::BrowserTypeForWindowType( return Browser::TYPE_NORMAL; } } + +void SessionService::RecordSaveHistogramData() { + if (!last_save_time_.is_null()) { + base::TimeDelta delta = base::TimeTicks::Now() - last_save_time_; + // We're interested in frequent updates, and group all periods longer than + // 10 minutes together. + UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.SavePeriod", + delta, + // 2500ms is the default save delay for coaelescing. This parameter + // only impacts histogram creation, and not steady-state sampling. + base::TimeDelta::FromMilliseconds(2500), + base::TimeDelta::FromMinutes(10), + 50); + + if (delta >= base::TimeDelta::FromMinutes(10)) { + UMA_HISTOGRAM_CUSTOM_TIMES("SessionRestore.LongSavePeriod", + delta, + base::TimeDelta::FromMinutes(10), + base::TimeDelta::FromHours(8), + 50); + } + } + + last_save_time_ = base::TimeTicks::Now(); +} |