Benchmarks
Every release from 2.5.8 on publishes the same measurement, the way it publishes its changelog: the render bench run on the new release and on the one before it, one after the other, on the same machine with nothing else running. Each entry compares versioned release builds. The previous release is rebuilt from its tag; the current candidate is measured after its source and version are final.
The bench draws a price chart with a volume pane in headless Chromium and times three things at 10,000, 50,000 and 200,000 loaded bars, on the 2D canvas and the WebGL2 backend:
- Pan frame: a mouse drag with about 200 bars in view, one bar per step.
- Full zoom-out frame: every loaded bar in view, one pixel of drag per step.
- Tick with 10 studies: a forming-bar update on a chart carrying ten studies, the frame that recomputes and repaints them.
Each step is timed from the input to painted pixels. A cell gives the previous release’s p95 and this one’s, each the lowest of several runs, and how many times faster or slower the step became; within 5% either way reads as the same.
Read the figures as a comparison within one entry. The absolute numbers belong to
the machine that measured them, and headless Chromium draws WebGL on a software
GL device, so the webgl2 rows compare one build of the WebGL path with another,
not WebGL with the 2D canvas or with a real GPU. CI holds every change to separate
frame budgets on its own runner; the method, the budgets and why a fast result can
be trusted are in the
performance notes.
The raw timings of every run are in
benchmarks/releases.json.
2.6.7
Measured 2026-10-17 against 2.6.6, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.7 and 5 of 2.6.6.
Machine: AMD EPYC 9V45 96-Core Processor (4 logical CPUs), Linux 6.17.0-1022-azure, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 3.9 ms to 3.9 ms (same) | 13.9 ms to 12.2 ms (1.1x faster) | 28.9 ms to 27.2 ms (1.1x faster) |
| canvas2d | 50,000 | 4.2 ms to 3.8 ms (1.1x faster) | 26.3 ms to 27.1 ms (same) | 78.5 ms to 77.3 ms (same) |
| canvas2d | 200,000 | 4.3 ms to 4 ms (1.1x faster) | 61.3 ms to 56.7 ms (1.1x faster) | 177.5 ms to 175.5 ms (same) |
| webgl2 | 10,000 | 29.9 ms to 29 ms (same) | 36.2 ms to 33.5 ms (1.1x faster) | 71.2 ms to 69.7 ms (same) |
| webgl2 | 50,000 | 30.4 ms to 29.3 ms (same) | 46.6 ms to 43.2 ms (1.1x faster) | 106.3 ms to 103 ms (same) |
| webgl2 | 200,000 | 30.8 ms to 29.2 ms (1.1x faster) | 89.3 ms to 86.5 ms (same) | 244.9 ms to 242.9 ms (same) |
2.6.6
Measured 2026-10-17 against 2.6.5, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.6 and 5 of 2.6.5.
Machine: AMD EPYC 7763 64-Core Processor (4 logical CPUs), Linux 6.17.0-1022-azure, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 7.3 ms to 6.9 ms (1.1x faster) | 17.7 ms to 19.3 ms (1.1x slower) | 42.8 ms to 41.4 ms (same) |
| canvas2d | 50,000 | 7.2 ms to 6.9 ms (same) | 36 ms to 36.5 ms (same) | 115.9 ms to 110.6 ms (same) |
| canvas2d | 200,000 | 7.1 ms to 7.4 ms (same) | 112.6 ms to 114.9 ms (same) | 256.3 ms to 256.9 ms (same) |
| webgl2 | 10,000 | 45.3 ms to 45.2 ms (same) | 54.5 ms to 53 ms (same) | 107.8 ms to 105.9 ms (same) |
| webgl2 | 50,000 | 45.6 ms to 45.4 ms (same) | 66.8 ms to 66.9 ms (same) | 154.2 ms to 151.4 ms (same) |
| webgl2 | 200,000 | 45.5 ms to 45.4 ms (same) | 129.1 ms to 127.7 ms (same) | 342 ms to 341.2 ms (same) |
2.6.5
Measured 2026-10-16 against 2.6.4, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.5 and 5 of 2.6.4.
Machine: AMD EPYC 7763 64-Core Processor (4 logical CPUs), Linux 6.17.0-1022-azure, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 8.5 ms to 8.9 ms (same) | 20.1 ms to 22.3 ms (1.1x slower) | 42.8 ms to 42 ms (same) |
| canvas2d | 50,000 | 8.1 ms to 7.3 ms (1.1x faster) | 37.5 ms to 38.7 ms (same) | 113.9 ms to 119.7 ms (1.1x slower) |
| canvas2d | 200,000 | 8.2 ms to 7.1 ms (1.2x faster) | 124.2 ms to 126.3 ms (same) | 263 ms to 264.2 ms (same) |
| webgl2 | 10,000 | 45.6 ms to 45.6 ms (same) | 55.4 ms to 56.9 ms (same) | 107.6 ms to 107.3 ms (same) |
| webgl2 | 50,000 | 45.7 ms to 45.9 ms (same) | 67.4 ms to 67.3 ms (same) | 155.3 ms to 155.9 ms (same) |
| webgl2 | 200,000 | 45.8 ms to 45.5 ms (same) | 135.3 ms to 131.9 ms (same) | 345.3 ms to 348.8 ms (same) |
2.6.4
Measured 2026-10-13 against 2.6.3, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.4 and 5 of 2.6.3.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.1 ms to 2.1 ms (same) | 6.8 ms to 7.3 ms (1.1x slower) | 19.9 ms to 20.4 ms (same) |
| canvas2d | 50,000 | 2 ms to 2 ms (same) | 19.6 ms to 19.9 ms (same) | 50.7 ms to 53.3 ms (1.1x slower) |
| canvas2d | 200,000 | 2.1 ms to 2.1 ms (same) | 53 ms to 55.3 ms (same) | 150.3 ms to 146.6 ms (same) |
| webgl2 | 10,000 | 11.2 ms to 10.1 ms (1.1x faster) | 13.1 ms to 13.2 ms (same) | 27.2 ms to 28.4 ms (same) |
| webgl2 | 50,000 | 9.9 ms to 10.4 ms (1.1x slower) | 20.4 ms to 20.6 ms (same) | 53.5 ms to 54.4 ms (same) |
| webgl2 | 200,000 | 11 ms to 11 ms (same) | 57.8 ms to 57.1 ms (same) | 160.2 ms to 157.8 ms (same) |
2.6.3
Measured 2026-10-13 against 2.6.2, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.3 and 5 of 2.6.2.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2 ms to 2.1 ms (same) | 7.4 ms to 5.3 ms (1.4x faster) | 19.9 ms to 20.6 ms (same) |
| canvas2d | 50,000 | 2.1 ms to 2.1 ms (same) | 19.2 ms to 19.3 ms (same) | 42.6 ms to 58.1 ms (1.4x slower) |
| canvas2d | 200,000 | 2 ms to 2 ms (same) | 53.6 ms to 51.5 ms (same) | 150.8 ms to 149.9 ms (same) |
| webgl2 | 10,000 | 10.8 ms to 10.1 ms (1.1x faster) | 12.6 ms to 12.6 ms (same) | 27.9 ms to 27.2 ms (same) |
| webgl2 | 50,000 | 9.8 ms to 10.9 ms (1.1x slower) | 20.1 ms to 19.7 ms (same) | 53.8 ms to 53.7 ms (same) |
| webgl2 | 200,000 | 9.8 ms to 10.6 ms (1.1x slower) | 56.6 ms to 56.4 ms (same) | 160.2 ms to 159.8 ms (same) |
2.6.2
Measured 2026-10-13 against 2.6.1, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.2 and 5 of 2.6.1.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.2 ms to 2.3 ms (same) | 6.6 ms to 7.2 ms (1.1x slower) | 19.8 ms to 19.7 ms (same) |
| canvas2d | 50,000 | 2.2 ms to 2.2 ms (same) | 20.7 ms to 20.7 ms (same) | 45 ms to 45.2 ms (same) |
| canvas2d | 200,000 | 2.2 ms to 2.2 ms (same) | 55.6 ms to 56 ms (same) | 157.8 ms to 154.3 ms (same) |
| webgl2 | 10,000 | 11.2 ms to 11.3 ms (same) | 13.5 ms to 13.1 ms (same) | 28.5 ms to 28.5 ms (same) |
| webgl2 | 50,000 | 11.3 ms to 11.4 ms (same) | 21.7 ms to 21.5 ms (same) | 57.5 ms to 56.8 ms (same) |
| webgl2 | 200,000 | 11.3 ms to 11.4 ms (same) | 59.4 ms to 63.5 ms (1.1x slower) | 169.3 ms to 163.7 ms (same) |
2.6.1
Measured 2026-10-13 against 2.6.0, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.1 and 5 of 2.6.0.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.3 ms to 2.4 ms (same) | 7.5 ms to 7.6 ms (same) | 20.8 ms to 19.8 ms (1.1x faster) |
| canvas2d | 50,000 | 2.4 ms to 2.5 ms (same) | 20.8 ms to 21.2 ms (same) | 44.9 ms to 45.2 ms (same) |
| canvas2d | 200,000 | 2.4 ms to 2.6 ms (1.1x slower) | 57.4 ms to 58.4 ms (same) | 154.8 ms to 154.9 ms (same) |
| webgl2 | 10,000 | 11.6 ms to 11.3 ms (same) | 13.9 ms to 13.8 ms (same) | 30.7 ms to 30.6 ms (same) |
| webgl2 | 50,000 | 11.3 ms to 11.9 ms (1.1x slower) | 22 ms to 21.9 ms (same) | 58 ms to 57.7 ms (same) |
| webgl2 | 200,000 | 11.6 ms to 12.3 ms (1.1x slower) | 60.7 ms to 62.2 ms (same) | 162.1 ms to 170.3 ms (1.1x slower) |
2.6.0
Measured 2026-10-01 against 2.5.10, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.6.0 and 5 of 2.5.10.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.6 ms to 2.5 ms (same) | 7.8 ms to 8.6 ms (1.1x slower) | 22.1 ms to 21.6 ms (same) |
| canvas2d | 50,000 | 2.6 ms to 2.5 ms (same) | 22.9 ms to 21.5 ms (1.1x faster) | 48.4 ms to 51.1 ms (1.1x slower) |
| canvas2d | 200,000 | 2.7 ms to 2.6 ms (same) | 66.6 ms to 63.6 ms (same) | 175.7 ms to 178.3 ms (same) |
| webgl2 | 10,000 | 12.7 ms to 12.8 ms (same) | 14.8 ms to 15.2 ms (same) | 34.1 ms to 32.5 ms (same) |
| webgl2 | 50,000 | 13.3 ms to 13 ms (same) | 24.2 ms to 23.4 ms (same) | 67.7 ms to 64.1 ms (1.1x faster) |
| webgl2 | 200,000 | 13 ms to 12.6 ms (same) | 77.1 ms to 76.7 ms (same) | 193.2 ms to 189 ms (same) |
2.5.10
Measured 2026-09-30 against 2.5.9, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.5.10 and 5 of 2.5.9.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.4 ms to 2.4 ms (same) | 8.2 ms to 8.1 ms (same) | 21.1 ms to 21.1 ms (same) |
| canvas2d | 50,000 | 2.5 ms to 2.6 ms (same) | 21.3 ms to 22.7 ms (1.1x slower) | 46.8 ms to 46.8 ms (same) |
| canvas2d | 200,000 | 2.6 ms to 2.6 ms (same) | 57.6 ms to 62.7 ms (1.1x slower) | 152.5 ms to 157.6 ms (same) |
| webgl2 | 10,000 | 12.4 ms to 12.5 ms (same) | 14.4 ms to 14.7 ms (same) | 29.8 ms to 30.2 ms (same) |
| webgl2 | 50,000 | 12.1 ms to 12.3 ms (same) | 22.9 ms to 24 ms (same) | 58.1 ms to 60 ms (same) |
| webgl2 | 200,000 | 12.6 ms to 12.4 ms (same) | 70.8 ms to 73.3 ms (same) | 169.4 ms to 171.1 ms (same) |
2.5.9
Measured 2026-09-27 against 2.5.8, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.5.9 and 5 of 2.5.8.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.2 ms to 2.2 ms (same) | 5.9 ms to 6.8 ms (1.2x slower) | 20.2 ms to 20.1 ms (same) |
| canvas2d | 50,000 | 2.1 ms to 2.2 ms (same) | 19.7 ms to 20.1 ms (same) | 60 ms to 53.6 ms (1.1x faster) |
| canvas2d | 200,000 | 2.2 ms to 2.3 ms (same) | 52.1 ms to 56 ms (1.1x slower) | 143.7 ms to 149.6 ms (same) |
| webgl2 | 10,000 | 11.7 ms to 11.1 ms (1.1x faster) | 13.4 ms to 12.8 ms (same) | 27.7 ms to 27.6 ms (same) |
| webgl2 | 50,000 | 10.9 ms to 10.1 ms (1.1x faster) | 22 ms to 20.7 ms (1.1x faster) | 54.7 ms to 54.3 ms (same) |
| webgl2 | 200,000 | 11.8 ms to 11.5 ms (same) | 59.5 ms to 58.6 ms (same) | 158.3 ms to 159.3 ms (same) |
2.5.8
Measured 2026-09-27 against 2.5.7, both run in one session on one machine: each cell is the lowest p95 of 5 runs of 2.5.8 and 2 of 2.5.7.
Machine: AMD Ryzen 7 7700 8-Core Processor (16 logical CPUs), Windows 10.0.26200, headless Chromium 149.0.7827.55, software GL (SwiftShader), device pixel ratio 1.
| Renderer | Bars | Pan frame p95 | Full zoom-out frame p95 | Tick p95, 10 studies |
|---|---|---|---|---|
| canvas2d | 10,000 | 2.3 ms to 2.3 ms (same) | 19.2 ms to 6.4 ms (3.0x faster) | 198.4 ms to 20.8 ms (9.5x faster) |
| canvas2d | 50,000 | 2.3 ms to 2.2 ms (same) | 58.2 ms to 20.5 ms (2.8x faster) | 1066.9 ms to 46.9 ms (22.7x faster) |
| canvas2d | 200,000 | 2.2 ms to 2.2 ms (same) | 243.2 ms to 55.2 ms (4.4x faster) | 5799.1 ms to 150.8 ms (38.5x faster) |
| webgl2 | 10,000 | 11.4 ms to 11.2 ms (same) | 18.8 ms to 13.4 ms (1.4x faster) | 203.8 ms to 28.7 ms (7.1x faster) |
| webgl2 | 50,000 | 11.1 ms to 11.3 ms (same) | 58 ms to 21.6 ms (2.7x faster) | 1093.4 ms to 56.2 ms (19.5x faster) |
| webgl2 | 200,000 | 11 ms to 11.1 ms (same) | 236.3 ms to 61.2 ms (3.9x faster) | 5181.9 ms to 169 ms (30.7x faster) |