mgradwohl / mgradwohl/tasksmack

[Perf][Tooling] bench_UI.cpp doesn't measure real ImGui/ImPlot geometry cost

Open
#876 0 comments 0 reactions 0 assignees View on GitHub
performance testing tooling
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.