OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/common/startup_metric_utils.h" | 5 #include "chrome/common/startup_metric_utils.h" |
6 | 6 |
7 #include "base/hash_tables.h" | 7 #include "base/hash_tables.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "base/metrics/histogram_base.h" | 10 #include "base/metrics/histogram_base.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 return; | 106 return; |
107 DCHECK(!g_startup_stats_collection_finished); | 107 DCHECK(!g_startup_stats_collection_finished); |
108 | 108 |
109 const base::TimeDelta kStartupTimeMin( | 109 const base::TimeDelta kStartupTimeMin( |
110 base::TimeDelta::FromMilliseconds(1)); | 110 base::TimeDelta::FromMilliseconds(1)); |
111 const base::TimeDelta kStartupTimeMax(base::TimeDelta::FromMinutes(5)); | 111 const base::TimeDelta kStartupTimeMax(base::TimeDelta::FromMinutes(5)); |
112 static const size_t kStartupTimeBuckets = 100; | 112 static const size_t kStartupTimeBuckets = 100; |
113 | 113 |
114 // Set UMA flag for histograms outside chrome/ that can't use the | 114 // Set UMA flag for histograms outside chrome/ that can't use the |
115 // ScopedSlowStartupUMA class. | 115 // ScopedSlowStartupUMA class. |
116 base::Histogram* histogram = | 116 base::HistogramBase* histogram = |
117 base::StatisticsRecorder::FindHistogram("Startup.SlowStartupNSSInit"); | 117 base::StatisticsRecorder::FindHistogram("Startup.SlowStartupNSSInit"); |
118 if (histogram) | 118 if (histogram) |
119 histogram->SetFlags(base::HistogramBase::kUmaTargetedHistogramFlag); | 119 histogram->SetFlags(base::HistogramBase::kUmaTargetedHistogramFlag); |
120 | 120 |
121 // Iterate over the stats recorded by ScopedSlowStartupUMA and create | 121 // Iterate over the stats recorded by ScopedSlowStartupUMA and create |
122 // histograms for them. | 122 // histograms for them. |
123 base::AutoLock locker(*GetSubsystemStartupTimeHashLock()); | 123 base::AutoLock locker(*GetSubsystemStartupTimeHashLock()); |
124 SubsystemStartupTimeHash* time_hash = GetSubsystemStartupTimeHash(); | 124 SubsystemStartupTimeHash* time_hash = GetSubsystemStartupTimeHash(); |
125 for (SubsystemStartupTimeHash::iterator i = time_hash->begin(); | 125 for (SubsystemStartupTimeHash::iterator i = time_hash->begin(); |
126 i != time_hash->end(); | 126 i != time_hash->end(); |
(...skipping 19 matching lines...) Expand all Loading... |
146 SubsystemStartupTimeHash* hash = GetSubsystemStartupTimeHash(); | 146 SubsystemStartupTimeHash* hash = GetSubsystemStartupTimeHash(); |
147 // Only record the initial sample for a given histogram. | 147 // Only record the initial sample for a given histogram. |
148 if (hash->find(histogram_name_) != hash->end()) | 148 if (hash->find(histogram_name_) != hash->end()) |
149 return; | 149 return; |
150 | 150 |
151 (*hash)[histogram_name_] = | 151 (*hash)[histogram_name_] = |
152 base::TimeTicks::Now() - start_time_; | 152 base::TimeTicks::Now() - start_time_; |
153 } | 153 } |
154 | 154 |
155 } // namespace startup_metric_utils | 155 } // namespace startup_metric_utils |
OLD | NEW |