#1240 new planned

evaluate performance of ElementBoxWidget

Reported by: Ichthyostega Owned by:
Priority: lesser Milestone: 1alpha
Component: lumieraGui Keywords: gui evolution performance professional
Sub Tickets: #1016, #1038, #1196, #1219 Parent Tickets: #1190, #1242

Description

ElementBoxWidget is a building block of the Lumiera UI, and expected to be used pervasively. Most notably, the display of individual media Clips within the timeline is based on this custom widget — and we can expect a typical feature film sequence to hold hundreds of clips, which must response to focus and zoom scale changes without notable delay. Moreover, representing all those clips — even just in hidden state — might turn out as a significant factor for the UI's memory consumption (and preferably we should use available memory for display buffers and caches anyway)

Topics for investigation

Setup
build a reproducible Test session populated with an excessive amount of media clips
Memory consumption
provide instrumentation to watch the memory footprint of ElementBoxWidget instances
  • determine the impact of storing the full-rendered size of the IDLabel (as is done in the current implementation)
  • determine the impact of memorising the full unabridged text of the label within the widget (in case of shortening the label display)
  • determine the impact of caching the previous size constraint for short-circuit evaluation
Runtime
  • measure the time require to hide/show all widgets on extreme zoom scale change
  • measure the time of a focus change, with/without caching redundant previous constraint checks
  • measure the time of an average focus change with many unconstrained widgets without caching the full-rendered size

Acceptance Criteria

  • the implementation can be considered to be solid even under extreme conditions
  • measurements and reasoning have been documented

Change history (3)

comment:1 by Ichthyostega, at 2022-10-03T04:03:44Z

blocking: 11901190, 1242

comment:2 by Ichthyostega, at 2022-10-15T16:53:15Z

blockedby: 1227, 11851016, 1038, 1196, 1219

Introduced a logical cycle with this ticket mistakenly...

It is true that we do need a roughly complete Implementation in order to get sensible performance measurements, yet the shortening of the ID Label (#1242) can only be implemented without guesswork, when such a performance survey has already been done. And without the flexible handling of ID Label, the ElementBoxWidget (#1185) can certainly not be called complete...

⟹ the most sensible thing to do is to slightly lower the requirements for the investigation,
but at least require a half way complete implementation, with relevant parts already filled in....

comment:3 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 1016, 1038, 1196, 1219
blocking: 1190, 1242
Parent Tickets: 1190, 1242
Sub Tickets: 1016, 1038, 1196, 1219

Migration MasterTickets ⟼ Subtickets-plugin

Note: See TracTickets for help on using tickets.