Bug #6253
closed100% CPU load on client in Show event window
100%
Description
A requestAnimationFrame Promise Callback from popper.min.js (what is some tooltip and positioning JS library) takes about 60ms to execute and is called repeatedly, leading to 100% CPU load and very low client responsiveness (I get 0.2 FPS on Firefox 68.5 ESR on i7-6500U) making the UI unusable.
A complication is that this does not happen all the time, but frequently enough to be super annoying. It does not seem to be related to specific events.
Sometimes the Promise Callback takes much less time, but triggers several Style Recalculations for many elements. All the time it seems to be called in loop, so load is extreme and usability abysmal.
Updated by Jan Mach over 4 years ago
- Priority changed from Normal to High
- Target version changed from Backlog to 2.7
Thank you for reporting, I have identified the root of the problem. Popovers are created on hover, but not destroyed on cursor leaving the element. New popover is created on next hover, so...yeah, bad (because positions for popovers are calculated for all popovers, even those invisible, hence the 100% load). I will schedule it for next release.
Updated by Jan Mach over 4 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
- To be discussed changed from No to Yes
Attached patch should resolve the issue. Deploying to mentat-alt.
Updated by Jan Mach over 4 years ago
- Assignee changed from Jan Mach to Radko Krkoš
- To be discussed changed from Yes to No
Issue seems to be resolved on mentat-alt. It is just necessary to make sure /mentat/static/design/js/hawat-jquery.js
is not cached in the browser.
Updated by Jan Mach over 4 years ago
Use CTRL+SHIFT+R
to refresh everything including scripts in Chrome (i did not know that before).
Updated by Radko Krkoš over 4 years ago
- Status changed from Resolved to Closed
I am not able to reproduce the issue on mentat-alt
now, while easily reproducing it on mentat-hub
.
There is still a lot of JavaScript calculations going on, but my client seems capable of handling it at 50 FPS+.
Closing. Thanks, this was a nasty one.