New issue
Advanced search Search tips

Issue 838245 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression


Participants' hotlists:
LoginRefresh


Sign in to add a comment

82ms startup performance regression in views::Textfield::UpdateCursorViewPosition()

Project Member Reported by wittman@chromium.org, Apr 30 2018

Issue description

Data from the UMA Sampling Profiler shows that views::Textfield::UpdateCursorViewPosition() regressed browser process UI thread startup on 64-bit Chrome on Windows by 82ms. This occurred in the 65.0.3285.0 Canary release.

The responsible CL appears to be https://chromium.googlesource.com/chromium/src.git/+/9ccbec249dc0943a8c58bb988bfd9c3eca0dca56

Execution profile difference of Canary 64.0.3282.5 vs. 65.0.3285.0: https://uma.googleplex.com/p/chrome/callstacks?sid=86f7eed2e058c2ec8618deda7d024808

 
Cc: tapted@chromium.org
This looks a lot like the RenderText::GetCursorBounds()	regression seen in  issue 780670 . Trent, is it reasonable to apply a similar fix here?
I'm not sure whether the fix in  Issue 780670  can be used here.

There's a page fault required to load text-breaking rules from disk into memory whenever an input cursor needs to be rendered in a textfield. This must happen before text entry can occur in the omnibox. It's just a matter of when it's scheduled.

Avoiding the page fault during startup is kinda like threading a needle. To fix  Issue 780670 , I found a way to maintain that "threading" without regressing  Issue 739641 . I don't know if the same can be done in an elegant way for  Issue 789190  (which is what the culprit here - r521474 - was fixing).
Cc: skare@chromium.org
Could we delay cursor positioning in the omnibox until we actually need it for text entry?

Currently this page fault is on the critical path for getting the first pixels on screen, and it appears to be affecting the top 10% of users particularly badly -- at the 90th %ile the regression is 180ms and at the 99th %ile it's 400ms. So I think it's worth expending a fair amount of effort to address this.

+skare for the omnibox question.
Labels: Hotlist-DesktopUIToolingRequired Hotlist-DesktopUIChecked
*** UI Mass Triage ***

Sign in to add a comment