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

Issue 761604 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner:
Last visit 15 days ago
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocking:
issue 735799



Sign in to add a comment

Disable prefetching on 512 Android Go devices

Project Member Reported by dskiba@chromium.org, Sep 2 2017

Issue description

As per crbug.com/735799#c16 disabling prefetching seems to improve startup time on 512 Go devices.

Do more measurements, and disable prefetching for 512 Go devices.
 
Blocking: 735799
Owner: dskiba@chromium.org
Status: Assigned (was: Untriaged)

Comment 3 by dskiba@chromium.org, Sep 28 2017

I found that best results are achieved when both prefetching and warmup renderer creation is disabled. I see ~300ms reduction in startup time over 100 runs: https://docs.google.com/a/chromium.org/spreadsheets/d/16XfzB2FPToxjGWI821GQ52fAWz56SACAYAoZ_sJi8xU/edit?usp=sharing

My methodology was simple:

1. Build and install Monochrome, register it as a webview provider

2. Run Chrome, sign in with a test profile (EM-oriented, not very large)

3. Run build/android/adb_profile_chrome_startup --url=https://wikipedia.org 100 times, with and without --cold argument

4. Parse reports and extract three metrics:

   * Startup, the time from "ChromeApplication.onCreate" and until "BenchmarkInstrumentation::ImplThreadRenderingStats" (first time we draw layers), this is roughly the time when tab counter appears in [ ] tab button

   * Load, the time from "NavigationTiming navigationStart" and until "firstContentfulPaint"

   * Startup + Load, the time from "ChromeApplication.onCreate" and until "firstContentfulPaint"


I see ~300ms reduction in "Startup", and no regression in "Startup + Load". I.e. Chrome starts faster.

Comment 4 by dskiba@chromium.org, Sep 28 2017

Cc: dskiba@chromium.org
 Issue 761605  has been merged into this issue.

Comment 5 by dskiba@chromium.org, Nov 20 2017

I've decided to abandon this idea (crrev.com/c/687963) because while Startup metric improves, Start+Load (i.e. time from start to firstContenfulPaint) stays the same. See pages in the sheet:  https://docs.google.com/a/chromium.org/spreadsheets/d/16XfzB2FPToxjGWI821GQ52fAWz56SACAYAoZ_sJi8xU/edit?usp=sharing

Comment 6 by dskiba@chromium.org, Nov 20 2017

Status: WontFix (was: Assigned)

Comment 7 by pasko@chromium.org, Nov 20 2017

why is it not worth improving startup metric alone? If there are some other bottlenecks for page load perf later in the pipeline, why should they block this improvement?

Comment 8 by dskiba@chromium.org, Nov 20 2017

Improving Startup means that UI finishes initialization a bit faster. Visually that means tab button shows tab count faster. I think that doesn't worth the complexity this change adds.

We might want to reopen this in the future, but for now we better focus on other startup issues, like the fact that renderer is often blocked on the browser UI thread.

Comment 9 by pasko@chromium.org, Nov 21 2017

> I think that doesn't worth the complexity this change adds.

Are you referring to the complexity of disabling prefetching for low end devices or complexity of benchmarking or something else?

Sorry, from your comment and spreadsheet I could not find what change you were testing.

Comment 10 by pasko@chromium.org, Nov 21 2017

oh sorry, I did not recognize crrev.com/c/687963 as the uploaded patch, now it is clearer

Comment 11 by pasko@chromium.org, Nov 21 2017

I would argue that the complexity of a 40 line change is totally worth 300ms UI draw improvement. We will be adding AndroidGo startup as a perf testing configuration anyway, so I am not seeing added complexity in benchmarks either.
I tend to agree with Egor. If it looks like chrome is ready and the page load just takes longer to load but it's truly a wash on load time, I think that's an improvement for user experience
Labels: -Performance-Loading Performance-Startup
Status: Assigned (was: WontFix)
OK, I'll revisit this once I finish with other stuff.
Status: WontFix (was: Assigned)
lizeb@ is working on making prefetching (much) smarter in issue 758566.

And "disable warmup renderer" bit will be covered by  issue 796957  (by moving it after library loading).

We can return to this issue once these pieces land, but for now I'm closing this.

Sign in to add a comment