Skip to content

Perf instrument gap: DataGrid allocation work (#669) is not exercised by any /perf workload #732

Description

@azchohfi

What

PR #669 ("DataGrid allocs") optimizes allocations in the DataGrid control path, but no /perf workload instantiates a DataGrid, so the optimization cannot currently be measured or validated.

Evidence

Re-validated on current main (post-#692 + #665, the leaner baseline) — #669 reads textbook flat: StocksGrid alloc +0.1% [−0.9, +1.1], every headline/skip-floor/keyed block within noise, all 17 reconciler micro-benchmarks 0.0%. This is not a sign the PR is bad — it's that the StressPerf StocksGrid workload uses a native Grid, so the DataGrid code path is never entered.

Why it's a gap, not a no-op

This is the same situation #657 was in before StressPerf.KeyedList was added (the keyed-list workload converted #657 from "not-exercised" into a measurable −30% alloc win). #669 needs an analogous DataGrid-specific stress workload (a grid of N rows × M columns with realistic per-cell churn) before its allocation cuts can be judged.

Action

  1. Add a StressPerf.DataGrid workload (disjoint new files, like the keyed-list workload).
  2. Re-measure perf: cache per-render arrays/LINQ in DataGrid #669 against it.
  3. If the alloc win is real, revive the change (the implementation lives on PR perf: cache per-render arrays/LINQ in DataGrid #669's branch, closed pending this workload).

Filed as a follow-up so the idea isn't lost; #669 itself is closed as not-currently-measurable.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions