Commit Graph

1 Commits

Author SHA1 Message Date
tiresiasfromthebai 9ef82fb898 perf: coalesce Array Visualizer rebuilds and halve scatter restyle
In scatter mode a two-array (X/Y) plot rebuilt the table and chart once
per property setter (data, offset, stride) and restyled every marker four
times, so a ~4000-point phase portrait froze for ~0.8s per refresh.

- SeerArrayWidget: add a BulkUpdate RAII guard that defers create() until
  a burst of setters completes, so a refresh does one rebuild, not several.
- redecorateScatterSeries: drop the two redundant transparent passes; after
  addSeries() the series holds the theme pen/brush, so setPen(NoPen)/
  setBrush() are already real transitions and either re-pushes both to the
  markers.

~800ms -> ~200ms per refresh at 4000 points; line/spline and marker
appearance unchanged.

Add tests/helloscatter, a 4000-point two-array phase portrait with a
breakpoint loop, to reproduce the slow refresh.
2026-07-31 10:55:43 +02:00