New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 905678 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 10
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 729596
issue 899225



Sign in to add a comment

Records metrics for Chrome's startup types.

Project Member Reported by hanxi@chromium.org, Nov 15

Issue description

Add UMA metrics for cold start / warm start / half-cold / half-warm start.

1. Cold start: starts the whole browser process from scratch.

2. Warm start: the full browser process has started but paused, and just bring it back. For example, bring Chrome back from recents.

3. half-cold start: starts the ServiceManager only.

4. half-warm start: the ServiceManager is running but not the main loop. Starts the remaining parts of the browser.

We can distinguish the startup types (1,3 & 4) in ContentMainRunnerImpl:RunServiceManager():
https://chromium-review.googlesource.com/c/chromium/src/+/1327413/16/content/app/content_main_runner_impl.cc#875

However, early exists for warm and half-warm start may happen before reaching to the native side:
https://cs.chromium.org/chromium/src/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java?rcl=8700ed14ef6030b990233f03b729c1b60f81bc43&l=179.
For example, request to start ServiceManager only when ServiceManager is running. We also need to take this into consideration.

For purely warm start (2), it is possible to have a better place to record the metrics.
 
Owner: mheikal@chromium.org
Status: Assigned (was: Available)
Blocking: 899225
Owner: hanxi@chromium.org
Status: Started (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8585ad827b8562056439c6c3239ae80603bce52c

commit 8585ad827b8562056439c6c3239ae80603bce52c
Author: Xi Han <hanxi@google.com>
Date: Thu Dec 06 00:47:18 2018

Records metrics for Chrome's startup types on Android.

Add metrics "Servicification.Startup" on Android to record how Chrome
is launched:
1) CHROME_COLD: Cold start of Chrome as a full browser.
2) CHROME_HALF_WARM: Half warm start of Chrome with ServiceManager
   already running.
3) SERVICE_MANAGER_COLD: Cold start of only ServiceManager.
4) SERVICE_MANAGER_WARM: Warm start of only ServiceManager when the
   ServiceManager already running.

See diagram:
https://docs.google.com/document/d/1c8pM3LiNKoVcZ1OM9z4f5X4TrygQIG0te3KZMTx2FkY/edit#

We cache the metrics data and commit them after the native is
initialized.

These metrics focus on Chrome's startup with native initialization. The
total counts of cold starts should equal to the existing cold start of
Chrome, since cold starts should always initialize native.

Bug:  905678 
Change-Id: Id94b0c2ea42fd0cb907d7db52b921899e25c3b8e
Reviewed-on: https://chromium-review.googlesource.com/c/1355244
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614200}
[modify] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/content/public/android/BUILD.gn
[modify] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
[add] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/content/public/android/java/src/org/chromium/content/browser/ServicificationStartupUma.java
[modify] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java
[modify] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/8585ad827b8562056439c6c3239ae80603bce52c/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)

Sign in to add a comment