Issue metadata
Sign in to add a comment
|
82ms startup performance regression in views::Textfield::UpdateCursorViewPosition() |
||||||||||||||||||||
Issue descriptionData 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
,
May 3 2018
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).
,
May 3 2018
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.
,
Nov 20
*** UI Mass Triage *** |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by wittman@chromium.org
, Apr 30 2018