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

Side by Side Diff: components/startup_metric_utils/browser/startup_metric_utils.cc

Issue 2651823002: Add .SingleTab and .MultiTabs suffix to Startup.FirstWebContents.MainNavigationStart histogram. (Closed)
Patch Set: rebase on r448292 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/startup_metric_utils/browser/startup_metric_utils.h" 5 #include "components/startup_metric_utils/browser/startup_metric_utils.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null()) 713 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
714 return; 714 return;
715 715
716 base::StackSamplingProfiler::SetProcessMilestone( 716 base::StackSamplingProfiler::SetProcessMilestone(
717 metrics::CallStackProfileMetricsProvider::FIRST_NONEMPTY_PAINT); 717 metrics::CallStackProfileMetricsProvider::FIRST_NONEMPTY_PAINT);
718 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( 718 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
719 UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.NonEmptyPaint2", 719 UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.NonEmptyPaint2",
720 g_process_creation_ticks.Get(), ticks); 720 g_process_creation_ticks.Get(), ticks);
721 } 721 }
722 722
723 void RecordFirstWebContentsMainNavigationStart(const base::TimeTicks& ticks) { 723 void RecordFirstWebContentsMainNavigationStart(const base::TimeTicks& ticks,
724 WebContentsWorkload workload) {
724 static bool is_first_call = true; 725 static bool is_first_call = true;
725 if (!is_first_call || ticks.is_null()) 726 if (!is_first_call || ticks.is_null())
726 return; 727 return;
727 is_first_call = false; 728 is_first_call = false;
728 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null()) 729 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
729 return; 730 return;
730 731
731 base::StackSamplingProfiler::SetProcessMilestone( 732 base::StackSamplingProfiler::SetProcessMilestone(
732 metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_START); 733 metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_START);
733 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( 734 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
734 UMA_HISTOGRAM_LONG_TIMES_100, 735 UMA_HISTOGRAM_LONG_TIMES_100,
735 "Startup.FirstWebContents.MainNavigationStart", 736 "Startup.FirstWebContents.MainNavigationStart",
736 g_process_creation_ticks.Get(), ticks); 737 g_process_creation_ticks.Get(), ticks);
738
739 // Log extra information about this startup's workload. Only added to this
740 // histogram as this extra suffix can help making it less noisy but isn't
741 // worth tripling the number of startup histograms either.
742 if (workload == WebContentsWorkload::SINGLE_TAB) {
743 UMA_HISTOGRAM_WITH_TEMPERATURE(
744 UMA_HISTOGRAM_LONG_TIMES_100,
745 "Startup.FirstWebContents.MainNavigationStart.SingleTab",
746 ticks - g_process_creation_ticks.Get());
747 } else {
748 UMA_HISTOGRAM_WITH_TEMPERATURE(
749 UMA_HISTOGRAM_LONG_TIMES_100,
750 "Startup.FirstWebContents.MainNavigationStart.MultiTabs",
751 ticks - g_process_creation_ticks.Get());
752 }
737 } 753 }
738 754
739 void RecordFirstWebContentsMainNavigationFinished( 755 void RecordFirstWebContentsMainNavigationFinished(
740 const base::TimeTicks& ticks) { 756 const base::TimeTicks& ticks) {
741 static bool is_first_call = true; 757 static bool is_first_call = true;
742 if (!is_first_call || ticks.is_null()) 758 if (!is_first_call || ticks.is_null())
743 return; 759 return;
744 is_first_call = false; 760 is_first_call = false;
745 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null()) 761 if (WasNonBrowserUIDisplayed() || g_process_creation_ticks.Get().is_null())
746 return; 762 return;
747 763
748 base::StackSamplingProfiler::SetProcessMilestone( 764 base::StackSamplingProfiler::SetProcessMilestone(
749 metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_FINISHED); 765 metrics::CallStackProfileMetricsProvider::MAIN_NAVIGATION_FINISHED);
750 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( 766 UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT(
751 UMA_HISTOGRAM_LONG_TIMES_100, 767 UMA_HISTOGRAM_LONG_TIMES_100,
752 "Startup.FirstWebContents.MainNavigationFinished", 768 "Startup.FirstWebContents.MainNavigationFinished",
753 g_process_creation_ticks.Get(), ticks); 769 g_process_creation_ticks.Get(), ticks);
754 } 770 }
755 771
756 base::TimeTicks MainEntryPointTicks() { 772 base::TimeTicks MainEntryPointTicks() {
757 return g_browser_main_entry_point_ticks.Get(); 773 return g_browser_main_entry_point_ticks.Get();
758 } 774 }
759 775
760 } // namespace startup_metric_utils 776 } // namespace startup_metric_utils
OLDNEW
« no previous file with comments | « components/startup_metric_utils/browser/startup_metric_utils.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698