Skip to content

Record at the code what W5 measured about the list - #29

Merged
donislawdev merged 1 commit into
mainfrom
perf/w5-list-reaction
Sep 29, 2026
Merged

donislawdev merged 1 commit into
mainfrom
perf/w5-list-reaction

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

W5 of the performance series after the external report of 2026-09-28 (items G-1, G-2, G-3, G-9). Every lever was measured, and none of them is worth a change to the product. This PR records the results beside the code they are about, so the next outside report does not propose them a third time.

Comments only. No behaviour, test or contract changes.

What was measured, all inside the process with nothing polling the window, Release build, 774 entries:

  • Reaction of the list to a query is a median of 25-55 ms. Our code is 2-4% of the interface thread, in a managed profile and again in kernel samples. The rest is WPF taking a new set of rows. The note at RowList.Reconcile still said 143 ms and "open where it goes" - replaced.
  • Trigger bindings on a row go from 13 to 3 when each mark shares one Binding object. Query and scroll times did not move (interleaved runs, overlapping ranges). Not adopted - noted in Themes/Marks.xaml.
  • Scope switch costs 33-68 ms (medians). A reset could only apply between Services and Drivers and would break selection and scroll elsewhere. Kept - noted at MainViewModel.Scope.
  • Reread on a "Moved" tick is 0.7-1.0 ms against 0.3-0.5 ms for Apply alone. Kept - noted at Reread.

Checked: architecture tests 182/182, MarkDistinctionGuards 7/7.

🤖 Generated with Claude Code

W5 of the performance series closed without a change in behaviour: the
list's reaction and the scope switch have no lever on our side. Written
beside the code so the next outside report does not propose them again.

- RowList.Reconcile: the note said 143 ms and "still open where it goes".
  In process, with nothing polling the window, a query over 774 entries is
  a median of 25-55 ms, and our code is 2-4% of the interface thread in a
  managed profile and in kernel samples. The rest is WPF taking new rows.
- Themes/Marks.xaml: one shared Binding per mark takes a row from 13 trigger
  bindings to 3 and did not move the query or scroll time. Not adopted.
- MainViewModel.Scope: a scope move costs 33-68 ms (median), a reset could
  save at most the difference on one pair and breaks A10 elsewhere. Reread
  on a "Moved" tick is 0.7-1.0 ms against 0.3-0.5 ms for Apply alone.

Comments only. No test, contract or behaviour changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 44c3f31c-cb03-4d4d-b161-ecd0186cf01f


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@donislawdev
donislawdev merged commit 39e1319 into main Sep 29, 2026
8 checks passed
@donislawdev
donislawdev deleted the perf/w5-list-reaction branch September 29, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant