View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0017106||MediaMonkey 5||Main Panel||public||2020-11-16 19:44||2020-12-18 01:57|
|Target Version||5.0||Fixed in Version||5.0|
|Summary||0017106: UI lag when switching view with 'Column Filter' enabled|
|Description||1) Load a big database (at least 100K tracks)|
2) Go to Music > All tracks and enable 'Column Browser'
3) Select an item in the 'Column Filter'
4) Switch view type from 'Grid (by Album)' to 'List' or switch to another node
=> several seconds UI lag
Debugging this in DevTools the lag is in tracklistFilter.js > storeState
The more rows the Column Filter has, the slower is the state storing
|Tags||No tags attached.|
|Fixed in build||2282|
||Fixed in 2275|
Unable to replicate
It seems that the issue re-appears in 2281 per https://www.mediamonkey.com/forum/viewtopic.php?p=475410#p475410
Now the lag is when switching from "List" to "List (by Album)"
It seem that majority of the time takes GridView.restoreColumns > GroupedTracklist.setColumns
OK, this time the lag is not related to 'Column Filter' at all.
Even with disabled Column Filter simply switching from "List" to "List (by Album)" takes several seconds for 47K tracks.
Inspecting this in DevTools and the biggest lags are: https://www.dropbox.com/s/cfit6k75764qxvg/screenshot%202020-12-07%2014.50.45.png?dl=0
1) prepareDataSource @ groupedTrackList.js:200 (more than 1 second)
2) onColumnResize @ templates.js:242 (almost 2 seconds)
EDIT: ds.clearGroups(); @ groupedTrackList.js:203 seems causing the lag
Namely it waits for list write lock (as another thread is performing sortAsync on the list -- launched via ListView.forceAutoSort).
Unable to replicate lag. Left resolved and informed user to test with 2283
Re verified 2286
No further reports are received from user past 3 versions from fix.