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

Unified Diff: components/startup_metric_utils/browser/startup_metric_utils.cc

Issue 1410943005: Implements AddStartupEventsForTelemetry() in startup_metric_utils.cc for in-coming startup telemetry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@b00
Patch Set: Replace added mark event by instant time event, and ignore the first cold results in warm benchmarks Created 5 years, 1 month 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: components/startup_metric_utils/browser/startup_metric_utils.cc
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc
index 122326e95daff16a888d4106c7d148d12afeb4d7..3025e2dc618dd76b176eff6220c4db44e5f6eb75 100644
--- a/components/startup_metric_utils/browser/startup_metric_utils.cc
+++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
@@ -284,6 +284,8 @@ void RecordMainEntryTimeHistogram() {
(browser_main_entry_time_raw_ms >> 1) & kLower31BitsMask);
// A timestamp is a 64 bit value, yet histograms can only store 32 bits.
+ // TODO(gabadie): Once startup_with_url.* benchmarks are replaced by
+ // startup_with_url2.*, remove this dirty hack.
LOCAL_HISTOGRAM_TIMES("Startup.BrowserMainEntryTimeAbsoluteHighWord",
browser_main_entry_time_raw_ms_high_word);
LOCAL_HISTOGRAM_TIMES("Startup.BrowserMainEntryTimeAbsoluteLowWord",
@@ -306,6 +308,25 @@ base::Time ExeMainEntryPointTime() {
return base::Time();
}
+// Traces process creation and main entry point mark events.
+void TraceMissingStartupInstantEvents() {
gab 2015/11/10 19:30:53 Would prefer an even more specific name, e.g. AddS
gabadie 2015/11/12 08:57:20 Done.
+ static bool is_first_call = true;
+ if (!is_first_call)
+ return;
+ is_first_call = false;
gab 2015/11/10 19:30:53 This method only be called once hence you shouldn'
gabadie 2015/11/12 08:57:20 Good catch! Done.
+
+ DCHECK(!g_process_creation_time.Get().is_null());
+ DCHECK(!g_main_entry_point_time.Get().is_null());
+
+ TRACE_EVENT_INSTANT_WITH_TIMESTAMP("startup",
gab 2015/11/10 19:30:53 Suggest running "git cl format", the argument alig
gabadie 2015/11/12 08:57:20 My bad. Done.
+ "Startup.BrowserProcessCreation", 0,
+ StartupTimeToTimeTicks(g_process_creation_time.Get()).ToInternalValue());
gab 2015/11/10 19:30:53 FYI: Very soon this should use g_process_creation_
gabadie 2015/11/12 08:57:20 Done.
+
+ TRACE_EVENT_INSTANT_WITH_TIMESTAMP("startup",
+ "Startup.BrowserMainEntryPoint", 0,
+ StartupTimeToTimeTicks(g_main_entry_point_time.Get()).ToInternalValue());
gab 2015/11/10 19:30:53 g_main_entry_point_ticks for this too
gabadie 2015/11/12 08:57:20 Done.
+}
+
} // namespace
bool WasNonBrowserUIDisplayed() {
@@ -336,6 +357,7 @@ void RecordExeMainEntryPointTime(const base::Time& time) {
void RecordBrowserMainMessageLoopStart(const base::Time& time,
bool is_first_run) {
+ TraceMissingStartupInstantEvents();
RecordHardFaultHistogram(is_first_run);
RecordMainEntryTimeHistogram();

Powered by Google App Engine
This is Rietveld 408576698