Issue metadata
Sign in to add a comment
|
13ms startup performance regression in FindBarIcon::FindBarIcon() |
||||||||||||||||||||||
Issue descriptionData from the UMA Sampling Profiler shows that FindBarIcon::FindBarIcon() regressed browser process UI thread startup on 64-bit Chrome on Windows by 13ms. This occurred in the 66.0.3350.0 Canary release. The responsible CL appears to be https://chromium.googlesource.com/chromium/src.git/+/49074912451707d0f0e935934f70174cc21490a4 Execution profile difference of Canary 66.0.3349.0 vs. 66.0.3350.0: https://uma.googleplex.com/p/chrome/callstacks?sid=043c3e4a11540fe7f74843dfec33a0e8
,
Mar 8 2018
@wittman, is this really a P1? 13ms is not noticeable is it? Also, we have lots of UI code that gets a resource and sets a tooltip in the constructor. Example: https://cs.chromium.org/chromium/src/chrome/browser/ui/views/find_bar_view.cc?type=cs&sq=package:chromium&l=125 Why does getting the resource take so long?
,
Mar 8 2018
If 1000 different developers all concluded that their 10ms regression is not big enough, then Chrome start up would slow down by 10s. I think if there's a clear cause of a regression identified, then effort should be made to fix it if it can be done in a reasonable way. If it's not feasible at all, then it could be discussed to see if we live with it. But I don't think we should just dismiss it outright if the fix can be pretty simple (e.g. delaying loading until needed).
,
Mar 8 2018
What Alexei said is the reason for calling out and fixing even smaller regressions. Getting the resource is taking this long because it's being loaded from disk via the memory mapped resource file access. If the page containing a resource has already been loaded then loading it is cheap. If not, it's expensive, as in this case. The execution profile link was intended to highlight the specific regression, but it looks like it's not doing that. Here's the specific function, which shows a 17ms regression after collecting all data for the release: https://uma.googleplex.com/p/chrome/callstacks?sid=f9a6e0de09d27777a5749de59db586c3
,
Mar 8 2018
Ok, I understand. Just wanted to understand why this same pattern isn't a problem elsewhere. I know how to fix, thanks.
,
Mar 8 2018
Also did not see "startup" at first. I thought it was a regression in the find dialog coming up... Apologies :)
,
Mar 8 2018
Working on it here: https://chromium-review.googlesource.com/c/chromium/src/+/956422
,
Mar 9 2018
did this regress total startup performance or did it just move the first page fault in the resource bundle to a different caller? I think the fix for this is to update startup_resources_win.txt -- we will probably find some other performance gains. It was last updated in r452042 -- over year ago. asvitkine@?
,
Mar 9 2018
It regressed total startup performance, most likely by faulting in a page during startup that had previously only been faulted-in for the first time post-startup. If the fault had shifted from one place to another during startup, the regression detection we're using would have also detected the improvement in the other part of the code.
,
Apr 10 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f237caf07d28641030467730e7a808170bd3d519 commit f237caf07d28641030467730e7a808170bd3d519 Author: Aaron Leventhal <aleventhal@chromium.org> Date: Tue Apr 10 15:51:51 2018 Fix 13-17ms startup performance regression in find bar icon constructor Fetching the tooltip in the find bar icon's constructor is causing a startup regression. Wait to fetch it once the find bar icon becomes visible for the first time. Bug: 813827 Change-Id: I87d03a6e986d14793e0f5b21781e23cc8fd28549 Reviewed-on: https://chromium-review.googlesource.com/956422 Commit-Queue: Aaron Leventhal <aleventhal@chromium.org> Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org> Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Reviewed-by: Evan Stade <estade@chromium.org> Cr-Commit-Position: refs/heads/master@{#549546} [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/app/generated_resources.grd [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/autofill/save_card_icon_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/autofill/save_card_icon_view.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/bubble_icon_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/bubble_icon_view.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/find_bar_icon.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/find_bar_icon.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/intent_picker_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/intent_picker_view.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/star_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/star_view.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/zoom_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/location_bar/zoom_view.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/passwords/manage_passwords_icon_views.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/passwords/manage_passwords_icon_views.h [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/translate/translate_icon_view.cc [modify] https://crrev.com/f237caf07d28641030467730e7a808170bd3d519/chrome/browser/ui/views/translate/translate_icon_view.h
,
Apr 10 2018
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by wittman@chromium.org
, Feb 20 2018