View Issue Details

IDProjectCategoryView StatusLast Update
0017118MMW 5Generalpublic2021-02-17 17:05
Reporterdrakinite Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version5.0 
Target Version5.0Fixed in Version5.0 
Summary0017118: Performance issue - Extreme layout thrashing when tooltips fade in and out
DescriptionOn the main window, tooltips cause a huge performance penalty when fading in and out. It causes the entire UI to grind to a halt.
The biggest culprit appears to be splitter.js. It causes over two dozen layout recalculations per frame of a tooltip fadein/fadeout, causing each frame to take several hundred milliseconds. I've attached a performance recording that demonstrates the issue.

Original post: Item 1 of https://www.mediamonkey.com/forum/viewtopic.php?f=30&t=96907
More info: https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing?utm_source=devtools#avoid-forced-synchronous-layouts
Additional InformationI intentionally put this as a lower priority because I think it will take a considerable amount of development time to fix, and it should probably be saved for either 5.0.1 or 5.1; not 5.0. There's probably a lot of code that would need to be changed for this optimization.
TagsNo tags attached.
Attached Files
Fixed in build2293

Relationships

related to 0017311 closedpetr Tracklist sometimes goes invisible when the headers extend past the horizontal width of the listview 
related to 0017572 resolvedLudek Performance issue - Layout thrashing when switching between tabs 

Activities

rusty

2020-12-02 22:22

administrator   ~0060509

Updated priority--Petr thinks it should be easy.

petr

2020-12-03 07:54

developer   ~0060522

Fixed

peke

2020-12-06 15:42

developer   ~0060580

Verified 2280

I do not observe any additional performance drop, but it works much faster than 2277

drakinite

2020-12-07 03:25

developer   ~0060597

Smart thinking - Removing the tooltip fade entirely seems like it was a pretty easy fix. ;)

This makes MM5 SO much nicer to use now, it's fantastic.

drakinite

2021-01-07 22:53

developer   ~0061200

Last edited: 2021-01-07 22:54

Ludek and I tested offline; Found that the layout thrashing was caused by calling setVisibility instead of setVisibilityFast. Children don't need to be notified because it's positioned absolute. Lag is gone and the animation could be re-enabled after the fix.

Ludek

2021-01-08 00:04

developer   ~0061206

Last edited: 2021-01-08 00:05

Yes, animation re-enabled in 2293 and performance is even better as there was still 143 ms frame even with animation disabled

drakinite

2021-01-08 21:13

developer   ~0061250

Verified 2293