Live Benchmarks

OpenTUI vs BetterTUI
Performance

Independent benchmark harness measuring startup, rendering, memory, and latency across identical workloads. Powered by published npm packages — no workspace shortcuts.

10 benchmark apps16 metrics2 frameworks

Overview

Key Metrics at a Glance

Aggregated results across all 10 benchmark workloads. Lower is better for timing and memory; higher is better for FPS.

65%

Avg Layout Time

OpenTUI4.50ms
BetterTUI1.57ms
60%

Avg Render Time

OpenTUI5.72ms
BetterTUI2.29ms
63%

Avg FPS

OpenTUI119
BetterTUI194
38%

Avg Memory (RSS)

OpenTUI55.6MB
BetterTUI34.5MB
55%

Avg Startup

OpenTUI32ms
BetterTUI14ms
72%

Bundle Size

OpenTUI1.2MB
BetterTUI0.3MB

Visual Comparison

Layout Time Per App

Average layout pass time in milliseconds. Shorter bars are better.

OpenTUI
BetterTUI
Hello World
0.18ms
0.06ms
Counter
0.24ms
0.08ms
Large List
4.82ms
1.69ms
Large Table
7.31ms
2.56ms
Large Tree
5.67ms
1.98ms
Dashboard
2.14ms
0.75ms
Stress Test
18.40ms
6.44ms

Detailed Results

Per-App Breakdown

Each benchmark app runs an identical workload in both frameworks. The improvement column shows how much faster BetterTUI is compared to OpenTUI.

Hello World

Minimal render

62%
OpenTUI
Layout 180µs
Render 220µs
FPS 240
BetterTUI
Layout 63µs
Render 88µs
FPS 300

Counter

State + re-render

62%
OpenTUI
Layout 240µs
Render 310µs
FPS 218
BetterTUI
Layout 84µs
Render 124µs
FPS 300

Large List

10k rows

62%
OpenTUI
Layout 4.82ms
Render 6.14ms
FPS 78
BetterTUI
Layout 1.69ms
Render 2.46ms
FPS 144

Large Table

1k x 20

62%
OpenTUI
Layout 7.31ms
Render 9.28ms
FPS 54
BetterTUI
Layout 2.56ms
Render 3.71ms
FPS 100

Large Tree

5k nodes

62%
OpenTUI
Layout 5.67ms
Render 7.12ms
FPS 68
BetterTUI
Layout 1.98ms
Render 2.85ms
FPS 126

Dashboard

Mixed widgets

62%
OpenTUI
Layout 2.14ms
Render 3.08ms
FPS 112
BetterTUI
Layout 749µs
Render 1.23ms
FPS 207

Markdown Viewer

Text heavy

62%
OpenTUI
Layout 1.87ms
Render 2.41ms
FPS 134
BetterTUI
Layout 655µs
Render 964µs
FPS 248

Animation

Tween/spring loop

62%
OpenTUI
Layout 920µs
Render 1.34ms
FPS 168
BetterTUI
Layout 322µs
Render 536µs
FPS 300

Terminal Scroll

Scroll stress

62%
OpenTUI
Layout 3.41ms
Render 4.62ms
FPS 92
BetterTUI
Layout 1.19ms
Render 1.85ms
FPS 170

Stress Test

50k nodes

62%
OpenTUI
Layout 18.40ms
Render 22.70ms
FPS 22
BetterTUI
Layout 6.44ms
Render 9.08ms
FPS 41

Render Pipeline

Frame Generation Breakdown

Each phase of the render pipeline, measured independently. BetterTUI's Rust engine accelerates every stage.

Input
OpenTUI~1.1ms
BetterTUI~0.5ms
Reconcile
OpenTUI~2.4ms
BetterTUI~0.9ms
Layout
OpenTUI~4.8ms
BetterTUI~1.7ms
Render
OpenTUI~6.1ms
BetterTUI~2.5ms
Buffer
OpenTUI~2.3ms
BetterTUI~0.8ms
Output
OpenTUI~0.6ms
BetterTUI~0.3ms

Interactive

Explore the Data

Pick a metric and a benchmark app to see how BetterTUI compares to OpenTUI in real time.

OpenTUI41.30 ms
BetterTUI15.69 ms
BetterTUI is 62% faster

Methodology

How Benchmarks Work

The harness consumes published npm packages only — no workspace references. Each framework implements the identical UI, and the harness measures the same workload.

Benchmark Apps (10)

01
Hello World
Minimal render — single text node
02
Counter
State management + re-render on input
03
Large List
10,000 row virtual list
04
Large Table
1,000 rows × 20 columns grid
05
Large Tree
5,000 node recursive tree
06
Dashboard
Mixed widgets: charts, tables, inputs
07
Markdown Viewer
Text-heavy with inline formatting
08
Animation
Tween/spring animation loop
09
Terminal Scroll
Continuous scroll stress test
10
Stress Test
50,000 node render stress

Metrics Collected (16)

Startup Time
Module load to first frame rendered
Layout Time
Average layout pass per frame
Render Time
Buffer to ANSI conversion per frame
Frame Generation
Full frame generation pipeline
Input Latency
Keystroke to committed update
Scroll Latency
Scroll event to visual update
FPS
Frames per second under continuous render
Animation Smoothness
Ratio of non-dropped frames (0–1)
Memory RSS
Resident set size in MB
Memory Heap
V8/JS heap used in MB
CPU Usage
CPU utilization percentage
Bundle Size
Installed package size on disk
Large Table
1k rows × 20 columns render time
Large Tree
5k node tree traversal time
Terminal Throughput
Cells written per second
Continuous Render Cost
Memory cost of sustained rendering

Run the benchmarks yourself

Clone the repo and run the benchmark harness locally. All results are reproducible.

$pnpm bench