Closed
Bug 1448672
Opened 7 years ago
Closed 7 years ago
[css-flexbox] https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on Sync reflow
Categories
(Core :: Layout, defect)
Tracking
()
People
(Reporter: mayankleoboy1, Unassigned)
References
(Blocks 1 open bug, )
Details
(Keywords: perf)
Attachments
(1 file)
(deleted),
text/plain
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Build ID: 20180325100345
Steps to reproduce:
1. Create fresh profile on nightly
2. go to https://ci.chromium.org/p/chromium/g/main/console?limit=500
Actual results:
Page will not stop loading even after several minutes
The content process is using 100% CPU
You cannot interact with the page at all
Expected results:
not so
chrome also takes some time to load this page. But it takes some 10-15 seconds
Nightly takes several minutes, and it hadnt still loaded
https://perfht.ml/2G5Qqtz
Reporter | ||
Comment 1•7 years ago
|
||
Reporter | ||
Updated•7 years ago
|
Reporter | ||
Updated•7 years ago
|
Summary: https://ci.chromium.org/p/chromium/g/main/console?limit=500 doesnt stop loading → https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process
Comment 2•7 years ago
|
||
¡Hola!
Yup! Confirming on Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 ID:20180325130758
Here's another profile FWIW https://perfht.ml/2pCUwyU
¡Gracias!
Alex
Status: UNCONFIRMED → NEW
status-firefox61:
--- → affected
Ever confirmed: true
OS: Unspecified → Windows 10
Hardware: Unspecified → x86
Updated•7 years ago
|
Component: General → IPC
Summary: https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process → https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on mozilla::CondVar::Wait
Reporter | ||
Comment 3•7 years ago
|
||
from the profile, it looks like most of the time is spent in sync reflows in nsFlexContainerFrame::GetPrefISize and nsFlexContainerFrame::GetMinISize
tentative ni? based on FlexContainer.
Component: IPC → Layout: Floats
Flags: needinfo?(mats)
Summary: https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on mozilla::CondVar::Wait → https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on Sync reflow
Comment 4•7 years ago
|
||
It should be pretty easy to cache GetMinISize/GetPrefISize like we do
in nsGridContainerFrame.
Component: Layout: Floats → Layout
Flags: needinfo?(mats) → needinfo?(dholbert)
Keywords: perf
Summary: https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on Sync reflow → [css-flexbox] https://ci.chromium.org/p/chromium/g/main/console?limit=500 takes very long to load and hangs the content process on Sync reflow
Updated•7 years ago
|
Blocks: flexbox-perf-issues
Flags: needinfo?(dholbert)
Updated•7 years ago
|
Flags: needinfo?(dholbert)
Updated•7 years ago
|
Whiteboard: [qf]
Updated•7 years ago
|
Whiteboard: [qf] → [qf:f64][qf:p3]
Comment 5•7 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #4)
> It should be pretty easy to cache GetMinISize/GetPrefISize like we do
> in nsGridContainerFrame.
I've got patches to do this ^^, and I'm going to spin them off to a helper bug (bug 1454822), because -- while they help a lot -- they don't get us up to Chrome's neighborhood of performance (~15 second pageload per comment 0), so I don't want to close this bug when we land just these patches.
But bug 1454822's caching will help a lot here! Here's a before/after comparison, for bug 1454822's forthcoming patches, in a local opt build.
Before: https://perfht.ml/2vkAEpG
* After ~185 seconds of loading, the load still hasn't finished.
* The periodic script-triggered sync reflows are each 388-450ms
* nsFlexContainerFrame::Get is in the stack for 103 seconds (out of 184 total seconds in reflow), 56% of our cumulative reflow time.
After: https://perfht.ml/2HprRHR
* Pageload takes ~55 seconds altogether (52 seconds of which is in reflow)
* The periodic script-triggered sync reflows are each 100-110ms long (1/4th as long!)
* nsFlexContainerFrame::Get is in the stack for only 131ms (out of 52 seconds in reflow), representing a quarter of 1 percent of our cumulative reflow time.
Flags: needinfo?(dholbert)
Reporter | ||
Comment 6•7 years ago
|
||
I tried on the latest nightly, and the page opens in less than 10seconds for me. Same or faster than chrome. I even tried extreme versions of the page like https://ci.chromium.org/p/chromium/g/main/console?limit=2000 and it loaded fine.
Not sure why you got the timing mentioned in comment 5.
(Did you had WR enabled? One time I got the page in permanently busy state with WR. Didnt repro again, so considering it as a fluke? )
I wouldn't mind calling this bug fixed, if you dont see any other low-hanging fruit here, and can repro the fast page loading.
Flags: needinfo?(dholbert)
Comment 7•7 years ago
|
||
Oh, wow! I'm seeing results similar to what you describe, yeah -- the page loads quite fast now, definitely less than 10 seconds.
I suspect that in comment 5, my "post-patch" tree might've been a debug build (which would have a good deal more overhead / less optimization) - that would explain my slower results there.
Let's call this FIXED by bug 1454822 then. Thanks for the report and for verifying that the fix helped!
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(dholbert)
Resolution: --- → FIXED
Comment 8•7 years ago
|
||
(Calling this "verified" due to independent confirmation in Nightly, between comment 6 / comment 7.)
Status: RESOLVED → VERIFIED
Updated•3 years ago
|
Performance Impact: --- → P3
Whiteboard: [qf:f64][qf:p3]
You need to log in
before you can comment on or make changes to this bug.
Description
•