Bklit TanStack Charts against Bklit UI on all 25 charts, with the same data and the same design. Each figure is the change from Bklit UI, so a negative number means less time, less work or a smaller bundle. Charts render faster and do less work on hover; bundles are currently larger.
View benchmark code on GitHub74.2 ms → 37.7 ms
4.37 ms → 3.99 ms
74.5 KB → 80.5 KB
| Chart | Time to Render | On hover | Bundle Size |
|---|---|---|---|
| Scatter Chart | −38%59.6 → 36.7 ms | −13%3.57 → 3.12 ms | −4%74.6 → 71.5 KB |
| Bar Chart | −37%42.4 → 26.5 ms | −22%3.7 → 2.9 ms | +6%74.6 → 79.4 KB |
| Candlestick Chart | −29%48.4 → 34.2 ms | −12%3.4 → 2.99 ms | +11%68 → 75.8 KB |
| Area Chart | −41%58.1 → 34.5 ms | −12%4.93 → 4.35 ms | +7%86.9 → 93.3 KB |
| Line Chart | −44%9.8 → 5.5 ms | −19%5.34 → 4.33 ms | +7%90.5 → 97.1 KB |
| Live Line Chart | −70%470.6 → 139 ms | +40%7.45 → 10.4 ms | +5%72.5 → 76.2 KB |
| Composed Chart | −54%75.9 → 35.1 ms | −4%5.9 → 5.67 ms | +1%89 → 90.1 KB |
| Radar Chart | −15%32.2 → 27.5 ms | +64%1.98 → 3.25 ms | −2%61.1 → 59.7 KB |
| Pie Chart | −58%46.2 → 19.4 ms | +17%0.3 → 0.35 ms | +9%51.6 → 56.2 KB |
| Ring Chart | 0%41.2 → 41.4 ms | −5%6.74 → 6.42 ms | −8%56.9 → 52.4 KB |
| Gauge | −69%123.6 → 37.8 ms | +20%0.05 → 0.06 ms | +14%52.3 → 59.8 KB |
| Funnel Chart | −37%58.1 → 36.8 ms | +114%1.4 → 2.99 ms | +14%46.1 → 52.4 KB |
| Heatmap Chart | −15%44.5 → 38 ms | −81%8.49 → 1.58 ms | −3%72.4 → 70.3 KB |
| Sunburst Chart | −5%48.5 → 46.3 ms | −45%6.54 → 3.58 ms | +41%48.5 → 68.5 KB |
| Choropleth Chart | −44%141.1 → 78.9 ms | −39%2.42 → 1.47 ms | −2%71.8 → 70.3 KB |
| Sankey Chart | −67%52.2 → 17.1 ms | −1%7.15 → 7.11 ms | +27%53.1 → 67.4 KB |
| Reference Area | −25%51.9 → 39 ms | +4%4.07 → 4.25 ms | +9%89.1 → 96.8 KB |
| Segment | −30%57.8 → 40.3 ms | +4%4.22 → 4.39 ms | +5%88.5 → 93.2 KB |
| Projection Line | −51%66.4 → 32.3 ms | +3%3.9 → 4 ms | +11%88.3 → 97.7 KB |
| Chart Brush | −32%57.7 → 39.5 ms | +16%3.65 → 4.23 ms | +20%95.9 → 115.2 KB |
| Chart Markers | −76%23.8 → 5.8 ms | +14%5.53 → 6.32 ms | +9%94 → 102.4 KB |
| Pattern Area | −32%58.2 → 39.5 ms | −2%4.27 → 4.19 ms | +6%87.3 → 92.9 KB |
| Bar Squares | −60%62.1 → 24.7 ms | −22%5.22 → 4.05 ms | +6%80 → 84.9 KB |
| Bar Depth | −45%52.1 → 28.9 ms | −29%4.7 → 3.35 ms | +6%77 → 81.8 KB |
| Composition | n/a | +4%4.34 → 4.52 ms | +16%91.3 → 106.2 KB |
Cells show the change and the median of each side. Green marks a gain; hover a cell for the range across runs. Composition has no designed entrance, so no Time to Render.
Method: 2026-10-13, production (next build, next start) of main 36240b49, every route in one sweep, 8 interleaved runs with both charts on one page, 60 pointer moves per side per run, bklit-ui f7b3bd2, TanStack Charts 1.1.0, Apple M1, 8 cores, 16 GB, macOS 26.6.2, Chrome 155, ~100 Hz, no other agents running (1-min load 1.3-3.2), 1710 x 1295. The cards at the top are geometric means of the per-chart changes. Bundle sizes: esbuild, minified, tree-shaken, React external, one bundle per chart; Bklit TanStack Charts also ships 8.2 KB gzip of shared CSS.