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

Side by Side Diff: chrome/browser/metrics/renderer_uptime_tracker.cc

Issue 2697323004: Adds UMA metrics for renderer uptime (Closed)
Patch Set: fix 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/metrics/renderer_uptime_tracker.h"
6
7 #include "base/metrics/histogram_macros.h"
8
9 namespace {
10
11 RendererUptimeTracker* g_instance = nullptr;
12
13 } // namespace
14
15 // static
16 void RendererUptimeTracker::Initialize() {
Alexei Svitkine (slow) 2017/02/28 16:13:12 DCHECK(!g_instance);
keishi 2017/03/01 08:09:54 Done.
17 g_instance = new RendererUptimeTracker;
18 }
19
20 // static
21 bool RendererUptimeTracker::IsInitialized() {
22 return g_instance != nullptr;
23 }
24
25 // static
26 RendererUptimeTracker* RendererUptimeTracker::Get() {
27 DCHECK(g_instance);
28 return g_instance;
29 }
30
31 RendererUptimeTracker::RendererUptimeTracker() {}
32
33 RendererUptimeTracker::~RendererUptimeTracker() {}
34
35 void RendererUptimeTracker::OnRendererStarted(int pid) {
36 info_map_[pid] = RendererInfo{base::TimeTicks::Now(), 0, 0};
37 }
38
39 void RendererUptimeTracker::OnRendererTerminated(int pid) {
40 auto it = info_map_.find(pid);
41 if (it != info_map_.end()) {
42 auto uptime = base::TimeTicks::Now() - it->second.launched_at_;
43 UMA_HISTOGRAM_CUSTOM_TIMES("Memory.Experimental.Renderer.Uptime", uptime,
44 base::TimeDelta::FromHours(1),
45 base::TimeDelta::FromDays(7), 100);
Alexei Svitkine (slow) 2017/02/28 16:13:12 We strongly discourage 100 bucket histograms now.
keishi 2017/03/01 08:09:54 Done.
46 UMA_HISTOGRAM_COUNTS_10000(
47 "Memory.Experimental.Renderer.LoadsInMainFrameDuringUptime",
48 it->second.num_loads_in_main_frame_);
49 info_map_.erase(it);
50 }
51 }
52
53 void RendererUptimeTracker::OnLoadInMainFrame(int pid) {
54 auto it = info_map_.find(pid);
55 if (it != info_map_.end())
Alexei Svitkine (slow) 2017/02/28 16:13:11 What does it mean if it's not found? Should it be
keishi 2017/03/01 08:09:54 Done. Changed to DCHECK. I was unsure if metrics t
56 it->second.num_loads_in_main_frame_++;
57 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698