Opened 16 years ago

Closed 16 years ago

#477 closed enhancement (fixed)

mythlcdserver extremely ineffecient on large menus, regression from pre-mythlcdserver.

Reported by: eskil <myth@…> Owned by: paulh
Priority: minor Milestone: unknown
Component: mythmusic Version:
Severity: medium Keywords:
Cc: Ticket locked: no


The new mythlcdserver is very ineffecient when handling large menus. The way that UIManagedTreeListType updates the menu is to call LCD::switchToMenu from the ::Draw method. It passes the entire list of entries to this call.

Pre-mythlcdserver, that was ok, since it was an in-process operation. Now that list get's sent to mythlcdserver via a socket, and mythlcdserver then decides which subportion to display.

In my case, when navigating in mythmusic, it transfers a menu with over 10000 items - 100% cpu load and the menu does not keep up.

I'm guessing this can be fixed by changing LCD::switchToMenu, to include the logic that depending on the lcdHeight determines which elements are visible, and then only send those across to the mythlcdserver.

Change History (3)

comment:1 Changed 16 years ago by Paul <mythtv@…>

I've already fixed this in my local tree. It will get applied to svn shortly.

Like you say the problem is with the way UIManagedTreeListType sends possibly 1000's of menu items even if you only have a 4 line display!

comment:2 Changed 16 years ago by paulh

Owner: changed from Isaac Richards to paulh

comment:3 Changed 16 years ago by paulh

Resolution: fixed
Status: newclosed

(In [7537]) Fixes #477, the lcd menu update code in UIManagedTreeListType was creating menu items for every node at the current level. Fix things so it creates at most lcd height items either side of the selected node.

Note: See TracTickets for help on using tickets.