Skip to content

JMH benchmark suite for render + layout #130

Description

@rorygraves

Background

No benchmarks exist. Any perf claim about Layout v2, diff rendering, or virtual ListView is anecdotal. Regressions are invisible.

Goal

A JMH-based benchmark project with microbenchmarks for critical paths, runnable locally and in CI (gated, not on every commit).

Scope

  1. New sbt submodule modules/termflow-bench using sbt-jmh.
  2. Benchmarks for:
    • Layout.measure on representative trees.
    • Layout.resolve → VNode.
    • AnsiRenderer.diff on controlled before/after framebuffers.
    • End-to-end frame cost on SineWaveApp.
  3. Baseline numbers checked into docs/PERFORMANCE.md.
  4. CI job: sbt bench/Jmh/run -i 1 -wi 1 -f1 smoke-run; full runs manual.

Acceptance

  • sbt bench/Jmh/run works locally.
  • Baseline numbers captured in a doc.
  • CI smoke-run integrated.

Part of Phase 4 — Rendering & perf.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions