Issue metadata
Sign in to add a comment
|
276.7%-297.4% regression in sizes at 458276:458277 |
||||||||||||||||||||
Issue descriptionSee the link to graphs below.
,
Mar 21 2017
Looks like this was due to: https://chromium.googlesource.com/chromium/src/+/1432276fb82ae8e9b732faa03ab65f35d686017f Sadrul, does that seem plausible?
,
Mar 21 2017
I don't think so? It moves some code from one component to another. So it shouldn't cause a regression (especially by such a large amount) I think ... is it possible the skia roll at the next revision (crrev.com/458277) would cause something like this?
,
Mar 21 2017
Yup, seems fairly likely, thanks.
,
Mar 21 2017
IIUC we're blaming this commit? https://chromium.googlesource.com/chromium/src/+/b3a64fe5febbf538bb12d356728c3d5dba119ca7 That's a small change to Skia's image encoders which Chrome does not use (and AFAICT does not compile). Can you explain what this graph is measuring? The chrome executable is 3x bigger? I have a feeling that we're missing something, this is really strange.
,
Mar 21 2017
Yeah, you're right, something funny is going on here. Over to the sizes owner.
,
Mar 21 2017
One graph says the regression happened at 458277, but the other one says it happened at 458276. Visually the 458276 regression point looks more reasonable. That makes this the problematic CL: https://codereview.chromium.org/2751103008 I'll probably grab this bug. I'm doing a chrome.exe build right now and I have the tools to figure out where the bloat comes from. Because chrome.exe is fairly small it is easy to cause a large regression if the wrong code gets pulled in, so I'm sure this is real.
,
Mar 21 2017
Aside: it would be nice if the bugs or the graphs page would make it obvious what build hit the regression - what gn args will reproduce the problem. But, in this case the bug is very easy to reproduce. I tried with these settings that I had lying around and it shows chrome.exe as 3.2 MB at R458530: is_component_build = false is_debug = false target_cpu = "x86" enable_nacl = false treat_warnings_as_errors = false use_goma = true is_win_fastlink = true
,
Mar 22 2017
,
Mar 22 2017
,
Mar 22 2017
two separate bisects have identified the culprit CL, I think we should just revert and do the investigation after a revert. Shall I prep the revert?
,
Mar 22 2017
a revert of this CL has been created in https://codereview.chromium.org/2770953002/
,
Mar 22 2017
gpu/config, which becomes a new dependency of chrome is probably poorly setup to be depended-on in multiple places in the split-DLL world
,
Mar 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1 commit aa9787bbd7919d6114c6bb40fe8e30cdae424ba1 Author: wfh <wfh@chromium.org> Date: Thu Mar 23 01:23:13 2017 Revert of gpu: Add a util method to set crash-keys from a GPUInfo. (patchset #2 id:20001 of https://codereview.chromium.org/2751103008/ ) Reason for revert: causes size regression see crbug.com/703622 Original issue's description: > gpu: Add a util method to set crash-keys from a GPUInfo. > > Use the newly introduced util method to set crash-keys from a GPUInfo > in both chrome and android_webview. This will also be used in mus. > > BUG= 643746 > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel > > Review-Url: https://codereview.chromium.org/2751103008 > Cr-Commit-Position: refs/heads/master@{#458276} > Committed: https://chromium.googlesource.com/chromium/src/+/1432276fb82ae8e9b732faa03ab65f35d686017f TBR=boliu@chromium.org,bradnelson@chromium.org,rsesek@chromium.org,piman@chromium.org,jam@chromium.org,sadrul@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= 643746 , 703622 Review-Url: https://codereview.chromium.org/2770953002 Cr-Commit-Position: refs/heads/master@{#458968} [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/android_webview/common/aw_content_client.cc [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/chrome/BUILD.gn [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/chrome/common/chrome_content_client.cc [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/chrome/common/crash_keys.cc [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/chrome/common/crash_keys.h [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/chrome/test/BUILD.gn [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/components/nacl/broker/BUILD.gn [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/gpu/config/gpu_util.cc [modify] https://crrev.com/aa9787bbd7919d6114c6bb40fe8e30cdae424ba1/gpu/config/gpu_util.h
,
Mar 23 2017
Looks like the revert did help. Thanks for taking care of this! > gpu/config, which becomes a new dependency of chrome is probably poorly setup > to be depended-on in multiple places in the split-DLL world Would it help to make //gpu/config a 'component' type target instead of 'source_set'? [1] [1] https://cs.chromium.org/chromium/src/gpu/config/BUILD.gn?type=cs&sq=package:chromium&l=21
,
Mar 23 2017
Is there a trybot equivalent of this check? (i.e. can I check whether a modified CL reintroduces the regression without landing it in tree first?)
,
Mar 23 2017
I believe you should be able to use https://www.chromium.org/developers/telemetry/performance-try-bots
,
Mar 23 2017
> Would it help to make //gpu/config a 'component' type target instead of 'source_set'? [1] component is the same as static_library in shipping builds, but a dynamic library in component builds, so you'd need EXPORT macros and whatnot. The target you linked to is fairly small, so the size increase probably comes from that target's deps being large. So my guess is that that wouldn't help, and you'll have to make a small target containing just what you want to have in both exe and dll, and make the exe depend on just that. piman: Note that the size regression is on chrome.exe, not on either of chrome.dll or chrome_child.dll -- so this isn't really about split-dll.
,
Mar 23 2017
> So my guess is that that wouldn't help, You are right, it didn't. > and you'll have to make a small target containing just what you want to have > in both exe and dll, and make the exe depend on just that. That's what I ended up doing :) https://codereview.chromium.org/2751103008/#msg38 Thanks!
,
Mar 24 2017
Marking fixed, based on comments above. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by tdres...@chromium.org
, Mar 21 2017