Cytoscape.js GPU benchmarks

v4 (src/) vs v3 (v3/src/) · Mitata · times are per-iteration p50 · 2026-08-10 10:18 · c182dd0c (v4) · Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz · GPU: amd gcn-4 · chromium v24.18.0 · renderer profile

Machine and provenance
CPUIntel(R) Core(TM) i9-9900K CPU @ 3.60GHz
Cores8 physical / 16 logical · 3.6 GHz base · 5 GHz max
Memory62.6 GiB
GPUCoffeeLake-S GT2 [UHD Graphics 630] i915
Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (8.0 GiB) amdgpu
Adapteramd gcn-4
Browserchromium 149.0.7827.55
OSFedora Linux 43 (Workstation Edition) · 6.19.14-200.fc43.x86_64 · x64
Nodev24.18.0 (v8 13.6.233.17-node.50)
Commitc182dd0c
docs: the double-check sweep — six staleness fixes the round-62 close missed
Machine id5cf3f79c
Median speedup (geo-mean) 28× 96 v3-vs-gpu comparisons
Biggest win 258× frame: pan fit-all (labels) @ N=100k
v3 still ahead 0 comparisons
Total run time 20.1 min renderer profile

Speedup overview v3 p50 ÷ gpu p50, log scale · right of the 1× line = gpu faster

frame: pan fit-all (labels) @ 100k
258×
frame: pan far-zoom ÷8 @ 19.607k
253×
frame: pan far-zoom ÷8 @ 100k
217×
frame: pan fit-all @ 100k
214×
frame: pan fit-all (labels) @ 19.607k
155×
frame: pan fit-all (labels) @ 25k
143×
frame: pan fit-all @ 25k
136×
frame: pan far-zoom ÷8 @ 25k
136×
frame: pan fit-all @ 19.607k
135×
frame: pan far-zoom ÷8 @ 26k
128×
frame: pan fit-all @ 26k
127×
frame: pan fit-all (labels) @ 26k
125×
frame: pan fit-all (labels) @ 25k
120×
frame: pan fit-all @ 25k
118×
frame: pan far-zoom ÷8 @ 25k
118×
frame: pan zoomed-in 20× (labels) @ 100k
116×
frame: pan zoomed-in 20× @ 100k
108×
frame: pan zoomed-in 20× (labels) @ 19.607k
100×
frame: pan zoomed-in 20× @ 19.607k
78×
frame: pan fit-all (labels) @ 25k
48×
frame: pan fit-all (labels) @ 25k
47×
frame: pan fit-all (labels) @ 25k
46×
frame: pan fit-all (labels) @ 25k
46×
frame: pan fit-all (labels) @ 25k
45×
frame: pan fit-all (labels) @ 25k
44×
frame: pan fit-all @ 25k
41×
frame: pan fit-all @ 25k
41×
frame: pan far-zoom ÷8 @ 25k
40×
frame: pan fit-all @ 25k
40×
frame: pan far-zoom ÷8 @ 25k
40×
frame: pan fit-all @ 25k
40×
frame: pan far-zoom ÷8 @ 25k
40×
frame: pan far-zoom ÷8 @ 25k
40×
frame: pan fit-all @ 25k
40×
frame: pan far-zoom ÷8 @ 25k
39×
frame: pan fit-all (labels) @ 25k
39×
frame: pan fit-all @ 25k
38×
frame: pan far-zoom ÷8 @ 25k
38×
frame: pan fit-all @ 25k
36×
frame: pan far-zoom ÷8 @ 25k
36×
export: png full (≤2048 px) @ 19.607k
34×
frame: pan zoomed-in 20× (labels) @ 25k
32×
frame: pan zoomed-in 20× @ 25k
32×
frame: pan zoomed-in 20× (labels) @ 25k
31×
frame: pan zoomed-in 20× @ 25k
30×
export: png full (≤2048 px) @ 100k
28×
frame: pan zoomed-in 20× (labels) @ 25k
23×
frame: pan zoomed-in 20× (labels) @ 25k
21×
frame: pan zoomed-in 20× @ 25k
21×
frame: pan zoomed-in 20× (labels) @ 25k
21×
frame: pan zoomed-in 20× (labels) @ 25k
21×
frame: pan zoomed-in 20× (labels) @ 25k
20×
frame: pan zoomed-in 20× (labels) @ 25k
20×
frame: pan zoomed-in 20× @ 25k
20×
frame: pan zoomed-in 20× @ 25k
20×
frame: pan zoomed-in 20× @ 25k
19×
frame: pan zoomed-in 20× @ 25k
19×
frame: pan zoomed-in 20× (labels) @ 25k
18×
frame: pan zoomed-in 20× @ 25k
18×
init: create + ready @ 26k
18×
frame: pan zoomed-in 20× @ 25k
18×
export: png full (≤2048 px) @ 25k
17×
export: png full (≤2048 px) @ 25k
17×
init: create + ready (labels) @ 25k
15×
frame: pan zoomed-in 20× (labels) @ 26k
15×
init: create + ready (labels) @ 25k
15×
init: create + ready @ 25k
15×
frame: pan zoomed-in 20× @ 26k
15×
init: create + ready (labels) @ 25k
14×
init: create + ready @ 25k
14×
init: create + ready @ 25k
13×
init: create + ready @ 25k
13×
init: create + ready (labels) @ 26k
13×
init: create + ready (labels) @ 100k
13×
init: create + ready @ 25k
13×
init: create + ready (labels) @ 19.607k
13×
init: create + ready (labels) @ 25k
13×
init: create + ready (labels) @ 25k
13×
init: create + ready (labels) @ 25k
12×
init: create + ready @ 25k
12×
init: create + ready @ 19.607k
12×
init: create + ready @ 25k
12×
init: create + ready (labels) @ 25k
12×
init: create + ready @ 100k
12×
init: create + ready @ 25k
11×
init: create + ready (labels) @ 25k
11×
init: create + ready (labels) @ 25k
10×
init: create + ready @ 25k
8.9×
export: png full (≤2048 px) @ 25k
7.6×
export: png full (≤2048 px) @ 25k
6.6×
export: png full (≤2048 px) @ 25k
6.4×
export: png full (≤2048 px) @ 25k
5.0×
export: png full (≤2048 px) @ 25k
4.8×
export: png full (≤2048 px) @ 26k
4.5×
export: png full (≤2048 px) @ 25k
4.2×
export: png full (≤2048 px) @ 25k
2.7×
10×100×1000×

render — generated 25k × 50k N=25,000 · 1.2 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
38×
frame: pan zoomed-in 20×
18×
frame: pan far-zoom ÷8
38×
frame: pan fit-all (labels)
44×
frame: pan zoomed-in 20× (labels)
18×
pick: hover while panning — gpu
17.4 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.17 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
983 µs
compaction: compact() one-shot — gpu
27.3 ms
init: create + ready
8.9×
init: create + ready (labels)
10×
init: columnar form (gpu-only) — gpu
150 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
26.4 ms
export: png full (≤2048 px)
4.8×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 630 ms647 ms 663 ms621 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan fit-allgpu (device) 3.40 ms3.40 ms 3.41 ms3.39 ms 120
frame: pan zoomed-in 20×v3 295 ms294 ms 314 ms208 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan zoomed-in 20×gpu (device) 4.43 ms4.43 ms 4.45 ms4.41 ms 120
frame: pan far-zoom ÷8v3 627 ms634 ms 665 ms617 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.41 ms1.41 ms 1.42 ms1.40 ms 119
frame: pan fit-all (labels)v3 743 ms758 ms 769 ms731 ms 11
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 3.67 ms3.67 ms 3.68 ms3.66 ms 119
frame: pan zoomed-in 20× (labels)v3 308 ms310 ms 326 ms221 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.77 ms4.77 ms 4.79 ms4.75 ms 117
pick: hover while panninggpu 17.4 ms17.0 ms 18.1 ms4.20 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.5 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.5 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.17 ms1.17 ms 1.17 ms1.16 ms 120
compaction: pan fit-all, 10% livegpu device (compacted) 983 µs983 µs 990 µs976 µs 119
compaction: compact() one-shotgpu 27.3 ms27.3 ms 27.3 ms27.3 ms 1
init: create + readyv3 2.70 s2.70 s 2.70 s2.70 s 1
init: create + readygpu 302 ms302 ms 302 ms302 ms 1
init: create + ready (labels)v3 3.47 s3.47 s 3.47 s3.47 s 1
init: create + ready (labels)gpu 332 ms332 ms 332 ms332 ms 1
init: columnar form (gpu-only)gpu 150 ms150 ms 150 ms150 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 26.4 ms26.4 ms 26.4 ms26.4 ms 1
export: png full (≤2048 px)v3 1.41 s1.41 s 1.41 s1.41 s 1
export: png full (≤2048 px)gpu 292 ms292 ms 292 ms292 ms 1

render — generated 100k × 300k N=100,000 · 2.9 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
214×
frame: pan zoomed-in 20×
108×
frame: pan far-zoom ÷8
217×
frame: pan fit-all (labels)
258×
frame: pan zoomed-in 20× (labels)
116×
pick: hover while panning — gpu
19.1 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
954 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
540 µs
compaction: compact() one-shot — gpu
67.5 ms
init: create + ready
12×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
780 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
146 ms
export: png full (≤2048 px)
28×
100 µs1 ms10 ms100 ms1 s10 s100 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 3.57 s4.03 s 3.57 s3.57 s 2
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 9.31 ms9.31 ms 9.33 ms9.30 ms 121
frame: pan zoomed-in 20×v3 1.81 s1.78 s 1.84 s1.36 s 5
frame: pan zoomed-in 20×gpu 16.7 ms19.0 ms 33.5 ms16.4 ms 107
frame: pan zoomed-in 20×gpu (device) 18.7 ms18.7 ms 18.8 ms18.6 ms 107
frame: pan far-zoom ÷8v3 3.63 s3.61 s 3.63 s3.56 s 3
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan far-zoom ÷8gpu (device) 1.67 ms1.67 ms 1.70 ms1.66 ms 117
frame: pan fit-all (labels)v3 4.31 s4.73 s 4.31 s4.31 s 2
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 10.4 ms10.4 ms 10.4 ms10.4 ms 121
frame: pan zoomed-in 20× (labels)v3 1.94 s2.05 s 2.26 s1.44 s 5
frame: pan zoomed-in 20× (labels)gpu 16.7 ms20.3 ms 33.4 ms16.4 ms 100
frame: pan zoomed-in 20× (labels)gpu (device) 20.1 ms20.1 ms 20.2 ms19.9 ms 100
pick: hover while panninggpu 19.1 ms17.2 ms 19.4 ms500 µs 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.8 ms16.5 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.8 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 954 µs956 µs 958 µs952 µs 117
compaction: pan fit-all, 10% livegpu device (compacted) 540 µs530 µs 543 µs488 µs 116
compaction: compact() one-shotgpu 67.5 ms67.5 ms 67.5 ms67.5 ms 1
init: create + readyv3 16.0 s16.0 s 16.0 s16.0 s 1
init: create + readygpu 1.39 s1.39 s 1.39 s1.39 s 1
init: create + ready (labels)v3 19.6 s19.6 s 19.6 s19.6 s 1
init: create + ready (labels)gpu 1.52 s1.52 s 1.52 s1.52 s 1
init: columnar form (gpu-only)gpu 780 ms780 ms 780 ms780 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 146 ms146 ms 146 ms146 ms 1
export: png full (≤2048 px)v3 6.96 s6.96 s 6.96 s6.96 s 1
export: png full (≤2048 px)gpu 246 ms246 ms 246 ms246 ms 1

render — ndex-x-large (19.6k × 465k) N=19,607 · 3.2 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
135×
frame: pan zoomed-in 20×
78×
frame: pan far-zoom ÷8
253×
frame: pan fit-all (labels)
155×
frame: pan zoomed-in 20× (labels)
100×
pick: hover while panning — gpu
800 µs
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.45 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
928 µs
compaction: compact() one-shot — gpu
69.9 ms
init: create + ready
12×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
922 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
49.7 ms
export: png full (≤2048 px)
34×
100 µs1 ms10 ms100 ms1 s10 s100 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 4.50 s5.00 s 4.50 s4.50 s 2
frame: pan fit-allgpu 33.4 ms36.7 ms 50.2 ms33.1 ms 55
frame: pan fit-allgpu (device) 36.4 ms36.4 ms 36.8 ms36.1 ms 56
frame: pan zoomed-in 20×v3 2.60 s2.62 s 2.63 s2.57 s 4
frame: pan zoomed-in 20×gpu 33.4 ms35.7 ms 50.1 ms33.1 ms 57
frame: pan zoomed-in 20×gpu (device) 35.3 ms35.3 ms 36.1 ms34.3 ms 57
frame: pan far-zoom ÷8v3 4.23 s5.48 s 4.23 s4.23 s 2
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.57 ms1.57 ms 1.61 ms1.56 ms 120
frame: pan fit-all (labels)v3 5.19 s5.44 s 5.19 s5.19 s 2
frame: pan fit-all (labels)gpu 33.4 ms37.0 ms 50.1 ms33.1 ms 54
frame: pan fit-all (labels)gpu (device) 36.8 ms36.8 ms 37.4 ms36.4 ms 55
frame: pan zoomed-in 20× (labels)v3 3.34 s3.32 s 3.34 s3.24 s 3
frame: pan zoomed-in 20× (labels)gpu 33.4 ms37.7 ms 50.1 ms33.1 ms 54
frame: pan zoomed-in 20× (labels)gpu (device) 37.3 ms37.3 ms 38.0 ms36.3 ms 54
pick: hover while panninggpu 800 µs21.2 ms 70.3 ms0.00 ns 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.8 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.2 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.45 ms1.46 ms 1.47 ms1.44 ms 116
compaction: pan fit-all, 10% livegpu device (compacted) 928 µs929 µs 932 µs923 µs 119
compaction: compact() one-shotgpu 69.9 ms69.9 ms 69.9 ms69.9 ms 1
init: create + readyv3 21.5 s21.5 s 21.5 s21.5 s 1
init: create + readygpu 1.76 s1.76 s 1.76 s1.76 s 1
init: create + ready (labels)v3 24.0 s24.0 s 24.0 s24.0 s 1
init: create + ready (labels)gpu 1.91 s1.91 s 1.91 s1.91 s 1
init: columnar form (gpu-only)gpu 922 ms922 ms 922 ms922 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 49.7 ms49.7 ms 49.7 ms49.7 ms 1
export: png full (≤2048 px)v3 6.94 s6.94 s 6.94 s6.94 s 1
export: png full (≤2048 px)gpu 201 ms201 ms 201 ms201 ms 1

render — generated 25k × 50k curved (bezier pairs) N=25,000 · 1.3 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
40×
frame: pan zoomed-in 20×
18×
frame: pan far-zoom ÷8
40×
frame: pan fit-all (labels)
48×
frame: pan zoomed-in 20× (labels)
21×
pick: hover while panning — gpu
17.8 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
568 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
469 µs
compaction: compact() one-shot — gpu
15.6 ms
init: create + ready
12×
init: create + ready (labels)
11×
init: columnar form (gpu-only) — gpu
143 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
15.6 ms
export: png full (≤2048 px)
7.6×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 663 ms684 ms 728 ms653 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 10.6 ms10.6 ms 10.7 ms10.6 ms 121
frame: pan zoomed-in 20×v3 305 ms300 ms 325 ms214 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 122
frame: pan zoomed-in 20×gpu (device) 3.83 ms3.83 ms 3.87 ms3.80 ms 122
frame: pan far-zoom ÷8v3 667 ms671 ms 702 ms648 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 7.21 ms7.21 ms 7.23 ms7.20 ms 121
frame: pan fit-all (labels)v3 807 ms824 ms 838 ms800 ms 10
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 10.9 ms10.9 ms 10.9 ms10.9 ms 121
frame: pan zoomed-in 20× (labels)v3 343 ms336 ms 348 ms239 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.17 ms4.17 ms 4.19 ms4.14 ms 121
pick: hover while panninggpu 17.8 ms17.5 ms 18.0 ms8.90 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 568 µs565 µs 574 µs500 µs 116
compaction: pan fit-all, 10% livegpu device (compacted) 469 µs477 µs 671 µs463 µs 119
compaction: compact() one-shotgpu 15.6 ms15.6 ms 15.6 ms15.6 ms 1
init: create + readyv3 3.30 s3.30 s 3.30 s3.30 s 1
init: create + readygpu 271 ms271 ms 271 ms271 ms 1
init: create + ready (labels)v3 3.82 s3.82 s 3.82 s3.82 s 1
init: create + ready (labels)gpu 351 ms351 ms 351 ms351 ms 1
init: columnar form (gpu-only)gpu 143 ms143 ms 143 ms143 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 15.6 ms15.6 ms 15.6 ms15.6 ms 1
export: png full (≤2048 px)v3 2.06 s2.06 s 2.06 s2.06 s 1
export: png full (≤2048 px)gpu 270 ms270 ms 270 ms270 ms 1

render — generated 25k × 50k compound (1k parents) N=26,000 · 1.5 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
127×
frame: pan zoomed-in 20×
15×
frame: pan far-zoom ÷8
128×
frame: pan fit-all (labels)
125×
frame: pan zoomed-in 20× (labels)
15×
pick: hover while panning — gpu
17.1 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.10 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
960 µs
compaction: compact() one-shot — gpu
15.4 ms
init: create + ready
18×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
167 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
37.3 ms
export: png full (≤2048 px)
4.5×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 2.12 s2.18 s 2.23 s2.08 s 4
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 2.14 ms2.14 ms 2.14 ms2.09 ms 121
frame: pan zoomed-in 20×v3 245 ms249 ms 259 ms242 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.20 ms4.20 ms 4.24 ms4.16 ms 120
frame: pan far-zoom ÷8v3 2.13 s2.18 s 2.17 s2.13 s 4
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.38 ms1.38 ms 1.39 ms1.37 ms 119
frame: pan fit-all (labels)v3 2.10 s2.14 s 2.10 s2.08 s 4
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan fit-all (labels)gpu (device) 3.50 ms3.50 ms 3.50 ms3.49 ms 119
frame: pan zoomed-in 20× (labels)v3 258 ms258 ms 261 ms255 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.55 ms4.54 ms 4.57 ms4.50 ms 120
pick: hover while panninggpu 17.1 ms10.1 ms 18.0 ms400 µs 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.8 ms16.5 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.4 ms 122
compaction: pan fit-all, 10% livegpu device (peak slots) 1.10 ms1.10 ms 1.11 ms1.09 ms 121
compaction: pan fit-all, 10% livegpu device (compacted) 960 µs960 µs 971 µs951 µs 118
compaction: compact() one-shotgpu 15.4 ms15.4 ms 15.4 ms15.4 ms 1
init: create + readyv3 5.15 s5.15 s 5.15 s5.15 s 1
init: create + readygpu 289 ms289 ms 289 ms289 ms 1
init: create + ready (labels)v3 6.44 s6.44 s 6.44 s6.44 s 1
init: create + ready (labels)gpu 496 ms496 ms 496 ms496 ms 1
init: columnar form (gpu-only)gpu 167 ms167 ms 167 ms167 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 37.3 ms37.3 ms 37.3 ms37.3 ms 1
export: png full (≤2048 px)v3 1.37 s1.37 s 1.37 s1.37 s 1
export: png full (≤2048 px)gpu 306 ms306 ms 306 ms306 ms 1

render — generated 25k × 50k images (icon-per-type) N=25,000 · 1.4 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
41×
frame: pan zoomed-in 20×
21×
frame: pan far-zoom ÷8
40×
frame: pan fit-all (labels)
46×
frame: pan zoomed-in 20× (labels)
23×
pick: hover while panning — gpu
17.4 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.17 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
985 µs
compaction: compact() one-shot — gpu
16.2 ms
init: create + ready
15×
init: create + ready (labels)
14×
init: columnar form (gpu-only) — gpu
164 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
24.8 ms
export: png full (≤2048 px)
17×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 678 ms677 ms 686 ms666 ms 11
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.44 ms3.44 ms 3.45 ms3.43 ms 120
frame: pan zoomed-in 20×v3 350 ms351 ms 356 ms343 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan zoomed-in 20×gpu (device) 4.46 ms4.46 ms 4.48 ms4.45 ms 121
frame: pan far-zoom ÷8v3 664 ms681 ms 719 ms647 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.46 ms1.45 ms 1.46 ms1.44 ms 118
frame: pan fit-all (labels)v3 763 ms767 ms 776 ms752 ms 11
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 3.71 ms3.71 ms 3.72 ms3.70 ms 119
frame: pan zoomed-in 20× (labels)v3 382 ms386 ms 396 ms376 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.81 ms4.80 ms 4.82 ms4.79 ms 121
pick: hover while panninggpu 17.4 ms24.4 ms 18.6 ms9.80 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.5 ms 120
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.17 ms894 µs 1.19 ms463 µs 116
compaction: pan fit-all, 10% livegpu device (compacted) 985 µs985 µs 990 µs979 µs 116
compaction: compact() one-shotgpu 16.2 ms16.2 ms 16.2 ms16.2 ms 1
init: create + readyv3 4.29 s4.29 s 4.29 s4.29 s 1
init: create + readygpu 285 ms285 ms 285 ms285 ms 1
init: create + ready (labels)v3 5.15 s5.15 s 5.15 s5.15 s 1
init: create + ready (labels)gpu 365 ms365 ms 365 ms365 ms 1
init: columnar form (gpu-only)gpu 164 ms164 ms 164 ms164 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 24.8 ms24.8 ms 24.8 ms24.8 ms 1
export: png full (≤2048 px)v3 4.75 s4.75 s 4.75 s4.75 s 1
export: png full (≤2048 px)gpu 272 ms272 ms 272 ms272 ms 1

render — generated 25k × 50k wrapped labels N=25,000 · 1.3 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
40×
frame: pan zoomed-in 20×
19×
frame: pan far-zoom ÷8
39×
frame: pan fit-all (labels)
45×
frame: pan zoomed-in 20× (labels)
20×
pick: hover while panning — gpu
17.2 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
464 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
984 µs
compaction: compact() one-shot — gpu
9.70 ms
init: create + ready
13×
init: create + ready (labels)
12×
init: columnar form (gpu-only) — gpu
157 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
31.4 ms
export: png full (≤2048 px)
5.0×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 671 ms691 ms 690 ms664 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.40 ms3.40 ms 3.41 ms3.39 ms 119
frame: pan zoomed-in 20×v3 323 ms322 ms 350 ms226 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.43 ms4.43 ms 4.45 ms4.41 ms 118
frame: pan far-zoom ÷8v3 659 ms664 ms 673 ms647 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan far-zoom ÷8gpu (device) 1.41 ms1.41 ms 1.42 ms1.40 ms 119
frame: pan fit-all (labels)v3 757 ms775 ms 808 ms745 ms 11
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan fit-all (labels)gpu (device) 4.56 ms4.56 ms 4.57 ms4.53 ms 120
frame: pan zoomed-in 20× (labels)v3 337 ms330 ms 350 ms232 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 5.95 ms5.95 ms 5.97 ms5.88 ms 121
pick: hover while panninggpu 17.2 ms16.9 ms 17.4 ms7.30 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.3 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.3 ms 120
compaction: pan fit-all, 10% livegpu device (peak slots) 464 µs470 µs 641 µs461 µs 114
compaction: pan fit-all, 10% livegpu device (compacted) 984 µs985 µs 993 µs978 µs 116
compaction: compact() one-shotgpu 9.70 ms9.70 ms 9.70 ms9.70 ms 1
init: create + readyv3 3.24 s3.24 s 3.24 s3.24 s 1
init: create + readygpu 256 ms256 ms 256 ms256 ms 1
init: create + ready (labels)v3 4.21 s4.21 s 4.21 s4.21 s 1
init: create + ready (labels)gpu 337 ms337 ms 337 ms337 ms 1
init: columnar form (gpu-only)gpu 157 ms157 ms 157 ms157 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 31.4 ms31.4 ms 31.4 ms31.4 ms 1
export: png full (≤2048 px)v3 1.52 s1.52 s 1.52 s1.52 s 1
export: png full (≤2048 px)gpu 305 ms305 ms 305 ms305 ms 1

render — generated 25k × 50k half-invisible / half-inert N=25,000 · 1.2 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
36×
frame: pan zoomed-in 20×
20×
frame: pan far-zoom ÷8
36×
frame: pan fit-all (labels)
39×
frame: pan zoomed-in 20× (labels)
21×
pick: hover while panning — gpu
17.5 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
465 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
984 µs
compaction: compact() one-shot — gpu
9.40 ms
init: create + ready
11×
init: create + ready (labels)
12×
init: columnar form (gpu-only) — gpu
148 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
22.8 ms
export: png full (≤2048 px)
2.7×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 603 ms619 ms 618 ms593 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 1.66 ms1.66 ms 1.67 ms1.65 ms 118
frame: pan zoomed-in 20×v3 336 ms328 ms 340 ms234 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 1.43 ms1.43 ms 1.44 ms1.42 ms 119
frame: pan far-zoom ÷8v3 596 ms598 ms 612 ms577 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.15 ms1.11 ms 1.16 ms548 µs 117
frame: pan fit-all (labels)v3 652 ms668 ms 675 ms635 ms 12
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 1.96 ms1.96 ms 1.97 ms1.96 ms 120
frame: pan zoomed-in 20× (labels)v3 348 ms340 ms 355 ms247 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 2.57 ms2.57 ms 2.59 ms2.55 ms 120
pick: hover while panninggpu 17.5 ms16.8 ms 17.7 ms4.00 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.4 ms 120
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 465 µs733 µs 1.17 ms463 µs 116
compaction: pan fit-all, 10% livegpu device (compacted) 984 µs984 µs 990 µs977 µs 120
compaction: compact() one-shotgpu 9.40 ms9.40 ms 9.40 ms9.40 ms 1
init: create + readyv3 2.90 s2.90 s 2.90 s2.90 s 1
init: create + readygpu 258 ms258 ms 258 ms258 ms 1
init: create + ready (labels)v3 3.93 s3.93 s 3.93 s3.93 s 1
init: create + ready (labels)gpu 335 ms335 ms 335 ms335 ms 1
init: columnar form (gpu-only)gpu 148 ms148 ms 148 ms148 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 22.8 ms22.8 ms 22.8 ms22.8 ms 1
export: png full (≤2048 px)v3 702 ms702 ms 702 ms702 ms 1
export: png full (≤2048 px)gpu 257 ms257 ms 257 ms257 ms 1

render — generated 25k × 50k arrows (filled) N=25,000 · 1.6 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
118×
frame: pan zoomed-in 20×
30×
frame: pan far-zoom ÷8
118×
frame: pan fit-all (labels)
120×
frame: pan zoomed-in 20× (labels)
31×
pick: hover while panning — gpu
17.9 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.18 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
990 µs
compaction: compact() one-shot — gpu
8.70 ms
init: create + ready
14×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
156 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
27.0 ms
export: png full (≤2048 px)
6.6×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 1.97 s1.96 s 1.99 s1.86 s 5
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.54 ms3.55 ms 3.56 ms3.53 ms 121
frame: pan zoomed-in 20×v3 501 ms497 ms 514 ms428 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.67 ms4.67 ms 4.69 ms4.65 ms 121
frame: pan far-zoom ÷8v3 1.97 s1.93 s 2.00 s1.80 s 5
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan far-zoom ÷8gpu (device) 1.45 ms1.45 ms 1.46 ms1.43 ms 121
frame: pan fit-all (labels)v3 2.01 s2.09 s 2.15 s1.99 s 4
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms15.7 ms 121
frame: pan fit-all (labels)gpu (device) 3.81 ms3.81 ms 3.82 ms3.80 ms 120
frame: pan zoomed-in 20× (labels)v3 521 ms527 ms 534 ms445 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 5.02 ms5.02 ms 5.04 ms5.00 ms 118
pick: hover while panninggpu 17.9 ms17.5 ms 18.1 ms8.10 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.3 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.18 ms1.18 ms 1.18 ms1.17 ms 118
compaction: pan fit-all, 10% livegpu device (compacted) 990 µs991 µs 998 µs986 µs 116
compaction: compact() one-shotgpu 8.70 ms8.70 ms 8.70 ms8.70 ms 1
init: create + readyv3 3.69 s3.69 s 3.69 s3.69 s 1
init: create + readygpu 263 ms263 ms 263 ms263 ms 1
init: create + ready (labels)v3 4.01 s4.01 s 4.01 s4.01 s 1
init: create + ready (labels)gpu 320 ms320 ms 320 ms320 ms 1
init: columnar form (gpu-only)gpu 156 ms156 ms 156 ms156 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 27.0 ms27.0 ms 27.0 ms27.0 ms 1
export: png full (≤2048 px)v3 2.17 s2.17 s 2.17 s2.17 s 1
export: png full (≤2048 px)gpu 327 ms327 ms 327 ms327 ms 1

render — generated 25k × 50k arrows (half hollow, 0.6 alpha) N=25,000 · 1.6 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
136×
frame: pan zoomed-in 20×
32×
frame: pan far-zoom ÷8
136×
frame: pan fit-all (labels)
143×
frame: pan zoomed-in 20× (labels)
32×
pick: hover while panning — gpu
17.3 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
466 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
990 µs
compaction: compact() one-shot — gpu
12.0 ms
init: create + ready
12×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
197 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
22.6 ms
export: png full (≤2048 px)
17×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 2.28 s2.30 s 2.30 s2.27 s 4
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.55 ms3.56 ms 3.56 ms3.53 ms 118
frame: pan zoomed-in 20×v3 529 ms526 ms 543 ms444 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.68 ms4.68 ms 4.70 ms4.66 ms 121
frame: pan far-zoom ÷8v3 2.27 s2.29 s 2.28 s2.26 s 4
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.45 ms1.45 ms 1.46 ms1.43 ms 121
frame: pan fit-all (labels)v3 2.39 s2.39 s 2.41 s2.35 s 4
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 3.82 ms3.82 ms 3.83 ms3.80 ms 119
frame: pan zoomed-in 20× (labels)v3 531 ms531 ms 568 ms433 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 5.02 ms5.02 ms 5.04 ms5.01 ms 119
pick: hover while panninggpu 17.3 ms17.1 ms 17.5 ms11.5 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.4 ms 122
compaction: pan fit-all, 10% livegpu device (peak slots) 466 µs473 µs 645 µs463 µs 110
compaction: pan fit-all, 10% livegpu device (compacted) 990 µs990 µs 998 µs983 µs 118
compaction: compact() one-shotgpu 12.0 ms12.0 ms 12.0 ms12.0 ms 1
init: create + readyv3 3.62 s3.62 s 3.62 s3.62 s 1
init: create + readygpu 298 ms298 ms 298 ms298 ms 1
init: create + ready (labels)v3 4.27 s4.27 s 4.27 s4.27 s 1
init: create + ready (labels)gpu 340 ms340 ms 340 ms340 ms 1
init: columnar form (gpu-only)gpu 197 ms197 ms 197 ms197 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 22.6 ms22.6 ms 22.6 ms22.6 ms 1
export: png full (≤2048 px)v3 4.88 s4.88 s 4.88 s4.88 s 1
export: png full (≤2048 px)gpu 283 ms283 ms 283 ms283 ms 1

render — generated 25k × 50k hexagon borders (solid) N=25,000 · 1.3 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
40×
frame: pan zoomed-in 20×
19×
frame: pan far-zoom ÷8
40×
frame: pan fit-all (labels)
47×
frame: pan zoomed-in 20× (labels)
21×
pick: hover while panning — gpu
17.3 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.6 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.17 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
982 µs
compaction: compact() one-shot — gpu
9.00 ms
init: create + ready
13×
init: create + ready (labels)
15×
init: columnar form (gpu-only) — gpu
166 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
28.6 ms
export: png full (≤2048 px)
4.2×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 667 ms684 ms 684 ms662 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.42 ms3.42 ms 3.43 ms3.40 ms 120
frame: pan zoomed-in 20×v3 324 ms323 ms 334 ms277 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.48 ms4.48 ms 4.50 ms4.46 ms 119
frame: pan far-zoom ÷8v3 676 ms685 ms 717 ms656 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.41 ms1.41 ms 1.42 ms1.40 ms 114
frame: pan fit-all (labels)v3 784 ms799 ms 809 ms759 ms 11
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 3.68 ms3.68 ms 3.69 ms3.67 ms 121
frame: pan zoomed-in 20× (labels)v3 351 ms351 ms 353 ms347 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.2 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.82 ms4.82 ms 4.84 ms4.79 ms 121
pick: hover while panninggpu 17.3 ms17.0 ms 17.5 ms8.90 ms 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.6 ms16.7 ms 16.9 ms16.4 ms 122
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.8 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.17 ms1.17 ms 1.17 ms1.16 ms 120
compaction: pan fit-all, 10% livegpu device (compacted) 982 µs982 µs 987 µs975 µs 119
compaction: compact() one-shotgpu 9.00 ms9.00 ms 9.00 ms9.00 ms 1
init: create + readyv3 3.17 s3.17 s 3.17 s3.17 s 1
init: create + readygpu 241 ms241 ms 241 ms241 ms 1
init: create + ready (labels)v3 4.47 s4.47 s 4.47 s4.47 s 1
init: create + ready (labels)gpu 291 ms291 ms 291 ms291 ms 1
init: columnar form (gpu-only)gpu 166 ms166 ms 166 ms166 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 28.6 ms28.6 ms 28.6 ms28.6 ms 1
export: png full (≤2048 px)v3 1.63 s1.63 s 1.63 s1.63 s 1
export: png full (≤2048 px)gpu 384 ms384 ms 384 ms384 ms 1

render — generated 25k × 50k hexagon borders (dashed) N=25,000 · 1.3 minv4 (gpu) v3

Wall frame times are vsync-bound (both sides floor at the display refresh when fast); “gpu (device)” table rows are GPU-pass time via timestamp-query — the unbounded cost metric. init/export rows are one-shot timings. Adapter: amd gcn-4; dpr 2; 1280×800; adaptive render scale pinned to 1.

frame: pan fit-all
41×
frame: pan zoomed-in 20×
20×
frame: pan far-zoom ÷8
40×
frame: pan fit-all (labels)
46×
frame: pan zoomed-in 20× (labels)
20×
pick: hover while panning — gpu
17.3 ms
compaction: pan fit-all, 10% live — gpu (peak slots)
16.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
1.17 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
984 µs
compaction: compact() one-shot — gpu
8.20 ms
init: create + ready
13×
init: create + ready (labels)
15×
init: columnar form (gpu-only) — gpu
132 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
17.1 ms
export: png full (≤2048 px)
6.4×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 686 ms711 ms 736 ms677 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan fit-allgpu (device) 3.42 ms3.42 ms 3.43 ms3.40 ms 120
frame: pan zoomed-in 20×v3 326 ms319 ms 331 ms236 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan zoomed-in 20×gpu (device) 4.52 ms4.52 ms 4.54 ms4.49 ms 119
frame: pan far-zoom ÷8v3 667 ms681 ms 718 ms659 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.41 ms1.38 ms 1.42 ms721 µs 117
frame: pan fit-all (labels)v3 772 ms791 ms 824 ms761 ms 11
frame: pan fit-all (labels)gpu 16.6 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-all (labels)gpu (device) 3.68 ms3.68 ms 3.69 ms3.67 ms 120
frame: pan zoomed-in 20× (labels)v3 341 ms335 ms 349 ms240 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.85 ms4.85 ms 4.87 ms4.84 ms 120
pick: hover while panninggpu 17.3 ms18.0 ms 17.5 ms500 µs 25
compaction: pan fit-all, 10% livegpu (peak slots) 16.7 ms16.7 ms 16.9 ms16.3 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.3 ms 122
compaction: pan fit-all, 10% livegpu device (peak slots) 1.17 ms1.17 ms 1.18 ms1.16 ms 119
compaction: pan fit-all, 10% livegpu device (compacted) 984 µs984 µs 992 µs976 µs 118
compaction: compact() one-shotgpu 8.20 ms8.20 ms 8.20 ms8.20 ms 1
init: create + readyv3 3.24 s3.24 s 3.24 s3.24 s 1
init: create + readygpu 242 ms242 ms 242 ms242 ms 1
init: create + ready (labels)v3 4.43 s4.43 s 4.43 s4.43 s 1
init: create + ready (labels)gpu 286 ms286 ms 286 ms286 ms 1
init: columnar form (gpu-only)gpu 132 ms132 ms 132 ms132 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 17.1 ms17.1 ms 17.1 ms17.1 ms 1
export: png full (≤2048 px)v3 1.71 s1.71 s 1.71 s1.71 s 1
export: png full (≤2048 px)gpu 269 ms269 ms 269 ms269 ms 1