Bar panel cards wait for the first open
pull request 15044, merged into quattro, builds a bar panel's card the first time it opens instead of at startup. On one monitor David Heinemeier Hansson reports lower memory. The merge is not in version 4.0.4.
Each bar is built once per monitor, and each panel had been building its whole card at startup whether or not it was opened. The merged shell builds that card the first time the panel opens and then keeps it, so a reopen can keep a scroll position or an edit. The panels that move are network, agents, audio, bluetooth, elsewhen, tailscale, monitor, weather, clock, dropbox, and power.
On one 2560x1440 monitor, with the shell started fresh three times per build, Hansson reports memory of about 497 MB before and about 458 MB after, and CPU time in the opening stretch of about 1.64 s before and about 1.37 s after. Hansson reports that time to the first shell ping stayed 0.21 s. David Heinemeier Hansson opened and merged it. The pull request says that ping time does not change, because the shell answers before the bar's plugins finish loading.