mgradwohl / mgradwohl/tasksmack
[Perf][Tooling] bench_UI.cpp doesn't measure real ImGui/ImPlot geometry cost
- Dominant language
- C++
- Stars
- 1
- Forks
- 0
- Avg merge
- 3h 4m
- Merged PRs (30d)
- 115
Description
## Problem
`benchmarks/bench_UI.cpp:34-132` measures pure helper functions, not actual ImGui/ImPlot
geometry generation, font rendering, or draw-list submission -- the exact costs #843's own
profiling data identifies as the dominant remaining bottleneck (`ImDrawList::AddPolyline`,
`ImFont::RenderText`, `ImPlot::PlotShadedEx`, etc.). Model benchmarks mostly exercise real probes
against short startup-sized histories, not realistic long-running state.
## Recommendation
Add deterministic cardinality/full-history/churn workloads to model benchmarks. Add a separate
benchmark harness that drives real ImGui/ImPlot rendering (a headless/offscreen context) to
measure actual geometry/text/draw-list cost, distinct from the existing pure-logic benchmarks.
Exercise publication/reader concurrency, not just isolated single-threaded accessor calls.
## Acceptance criteria
- A new benchmark (or benchmark group) exists that exercises real ImGui/ImPlot rendering paths,
not just pure C++ helper logic.
- Existing model benchmarks gain at least one full-history/high-cardinality variant in addition
to the current short-history default.
## Additional Context
From #843's Phase 0 tooling-trust review addendum ("Concrete performance-tooling work" table,
bench_UI.cpp row). This is a real gap given Phase 2's chart-caching work needs to measure exactly
the geometry/rendering cost this harness doesn't currently cover.
Contributor guide
Research direction
Start with benchmarks/bench_UI.cpp:34-132 and the existing model benchmarks, then review #843's Phase 0 tooling-trust addendum and profiling references. Add deterministic full-history and high-cardinality model workloads, plus a separate headless or offscreen benchmark exercising real ImGui/ImPlot rendering and publication/reader concurrency. Done means the acceptance criteria pass and geometry, text, and draw-list costs are measured rather than only helper-function costs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100