Skip to content

Latest commit

 

History

History
72 lines (55 loc) · 4 KB

File metadata and controls

72 lines (55 loc) · 4 KB

Benchmark comparisons

This page is generated from benchmarks/latest.json; do not edit benchmark numbers by hand. To update it, run bun run bench:compare and then bun run docs:readme.

Generated: 2026-05-22T15:20:02.565Z Command: bun run bench:compare --width 1600 --height 900 Publishable: yes

Environment

  • Machine: local machine; AMD Ryzen 5 5600H with Radeon Graphics; 12 logical CPUs; 15.5 GiB RAM
  • OS: linux 7.0.9-1-cachyos x64
  • Browser: Chrome/148.0.7778.167
  • GPU/WebGL: ANGLE (NVIDIA Corporation, NVIDIA GeForce RTX 3050 Laptop GPU/PCIe/SSE2, OpenGL 4.5.0)
  • Canvas: 1600×900 CSS px; DPR 1
  • Library prewarm: 317.4 ms before measured runs
  • Setup warmup runs: 1 discarded run(s) before each measured library/scenario

Scenario data preparation

Scenario Description Samples Visible samples Data prep ms
line-100k-static 100k point line, initial render 100,000 100,000 7.3
line-1m-static 1M point line, initial render 1,000,000 1,000,000 101.7
line-1m-pan 1M point line, automated pan over 100k visible samples 1,000,000 100,000 101.3
line-1m-stream 1M point line, live append while following latest 100k samples 1,000,000 100,000 75.2
line-10m-accelerated-pan 10M point line, automated pan over 5M visible samples using BlazePlot's accelerated dataset path 10,000,000 5,000,000 1291.1

BlazePlot vs uPlot runtime delta

Higher ratios favor BlazePlot. FPS ratio is BlazePlot RAF FPS divided by uPlot RAF FPS; work ratio is uPlot p95 work time divided by BlazePlot p95 work time.

Scenario FPS ratio Work p95 ratio BlazePlot FPS uPlot FPS BlazePlot work p95 uPlot work p95
line-1m-pan 1.00× 1.75× 120.2 120.2 1.20 2.10
line-1m-stream 1.00× 1.77× 120.2 120.2 1.30 2.30
line-10m-accelerated-pan 5.58× 96.80× 120.2 21.5 0.50 48.40

Initial chart ready time

Ready time includes library chart construction plus the first browser frame after shared scenario data has been prepared.

Scenario BlazePlot 0.3.11 uPlot 1.6.32 Chart.js 4.5.1
line-100k-static 13.1 8.4 14.2
line-1m-static 16.2 24.5 27.3
line-1m-pan 14.0 6.5 13.2
line-1m-stream 34.3 11.6 13.6
line-10m-accelerated-pan 23.0 56.6 75.8

Runtime measurements

RAF columns measure browser animation-frame cadence during automated pan/stream scenarios. Work p95 uses BlazePlot internal chart frame time when available and otherwise the synchronous library update/redraw call.

Scenario Library RAF FPS RAF p95 ms Work p50 ms Work p95 ms Points p50 Draws p50 Appended Heap after measure
line-1m-pan BlazePlot 120.2 8.40 0.80 1.20 9,234 1 0 67.6 MiB
line-1m-pan uPlot 120.2 8.40 1.80 2.10 0 76.9 MiB
line-1m-pan Chart.js 119.8 8.40 3.00 3.60 0 86.6 MiB
line-1m-stream BlazePlot 120.2 8.40 0.90 1.30 9,234 1 184,123 76.8 MiB
line-1m-stream uPlot 120.2 8.40 1.90 2.30 184,000 86.9 MiB
line-1m-stream Chart.js 119.8 8.40 3.20 4.00 184,270 93.0 MiB
line-10m-accelerated-pan BlazePlot 120.2 8.40 0.30 0.50 9,288 1 0 488.0 MiB
line-10m-accelerated-pan uPlot 21.5 50.00 45.80 48.40 0 480.6 MiB
line-10m-accelerated-pan Chart.js 20.5 50.00 47.80 51.00 0 477.3 MiB

Source artifacts

  • benchmarks/latest.json is the canonical machine-readable result.
  • benchmarks/latest.md is the complete generated run report.
  • benchmarks/README.md documents how to collect publishable headed comparison numbers.