Records metrics for Chrome's startup types. |
||||
Issue descriptionAdd 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.
,
Nov 26
,
Nov 29
,
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
,
Jan 10
|
||||
►
Sign in to add a comment |
||||
Comment 1 by hanxi@chromium.org
, Nov 15Status: Assigned (was: Available)