View Issue Details

IDProjectCategoryView StatusLast Update
0018338MediaMonkey 5Otherpublic2021-11-05 01:24
ReporterLudek Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status closedResolutionreopened 
Product Version5.0 
Target Version5.0.2Fixed in Version5.0.2 
Summary0018338: Major 'layout shifting' performance leak on MM startup
DescriptionAs discussed over IM and debugging startup performance leaks, there is major layout shifting during startup (as can be seen on this profile: https://www.dropbox.com/s/8ifipbz4jam7180/Screenshot%202021-09-23%2011.16.21.png?dl=0 )

TagsNo tags attached.
Fixed in build2506

Relationships

related to 0018391 closedLudek Addons dialog does not maximizes correctly (regression 5.0.2.2506) 
related to 0018394 closedmichal (Performance) Use asJSON instead of fastForEach in Dropdown._setAutoWidth 

Activities

Ludek

2021-09-23 09:19

developer  

image.png (504,655 bytes)

Ludek

2021-09-23 10:17

developer   ~0064840

By studing our code we already use window.deferredNotifyLayoutChangeDown variant, but the problem is that it is fired with every frame, so still too often during startup layout inititalizations.

Maybe we could near after startup (say 2 seconds) replace the 'requestFrame' in deferredNotifyLayoutChangeDown by 'requestTimeout(..., 1000) ' to be sure that it won't be called more than twice during first two seconds after startup ?

Assigned to Draki to try and test how it helps and how it works then.

drakinite

2021-09-26 19:02

developer   ~0064867

Improved in 2506, but there is still opportunity for more optimization. For example, the setAutoWidth method of dropdown.js takes upwards of 5ms to execute for each dropdown, which adds up when there's a lot of dropdowns to load.

drakinite

2021-09-26 19:18

developer   ~0064868

Modified dropdown.js to not fire the setAutoWidth on a timer during window load. Assigning to Ludek for unit testing to make sure it doesn't introduce a regression.

Ludek

2021-09-27 13:33

developer   ~0064873

Last edited: 2021-09-27 13:50

View 2 revisions

As discussed offline, Jordan's changes in ListView causes "max call stack size exceeded" regression on MM5 start.

Needs to be fixed ASAP or reverted.
=> Fixed in 2506

Ludek

2021-09-27 14:09

developer   ~0064874

Modified Jordan's code in Dropdown.js slightly + run unit tests (all passed).

michal

2021-09-27 14:37

developer   ~0064877

Revision 38599 caused, that grids (Albums, Artists) are not displayed correctly after changing size of app window.

Ludek

2021-09-27 15:34

developer   ~0064878

Fixed in 2506

peke

2021-10-02 18:08

developer   ~0064955

Verified 2507

Unable to replicate described behavior?

peke

2021-11-05 01:24

developer   ~0065746

Re verified 2515

No regerssions found. Closing.