Cytoscape.js GPU benchmarks

v4 (src/) vs v3 (v3/src/) · Mitata · times are per-iteration p50 · 2026-08-06 23:41 · 3c9c3e33 (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)
Commit3c9c3e33
docs(v4): closing sweep for round 55 — record, prose, and the summary
Machine id5cf3f79c
Median speedup (geo-mean) 25× 64 v3-vs-gpu comparisons
Biggest win 146× frame: pan fit-all (labels) @ N=25k
v3 still ahead 0 comparisons
Total run time 11.3 min renderer profile

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

frame: pan fit-all (labels) @ 25k
146×
frame: pan far-zoom ÷8 @ 25k
145×
frame: pan fit-all (labels) @ 25k
134×
frame: pan fit-all @ 25k
133×
frame: pan far-zoom ÷8 @ 26k
127×
frame: pan fit-all @ 26k
126×
frame: pan fit-all (labels) @ 26k
125×
frame: pan far-zoom ÷8 @ 25k
118×
frame: pan fit-all @ 25k
117×
frame: pan fit-all (labels) @ 25k
49×
frame: pan fit-all (labels) @ 25k
48×
frame: pan fit-all (labels) @ 25k
47×
frame: pan fit-all (labels) @ 25k
46×
frame: pan far-zoom ÷8 @ 25k
43×
frame: pan fit-all @ 25k
42×
frame: pan far-zoom ÷8 @ 25k
41×
frame: pan fit-all @ 25k
41×
frame: pan fit-all @ 25k
39×
frame: pan fit-all @ 25k
39×
frame: pan far-zoom ÷8 @ 25k
38×
frame: pan fit-all (labels) @ 25k
38×
frame: pan far-zoom ÷8 @ 25k
38×
frame: pan fit-all @ 25k
35×
frame: pan far-zoom ÷8 @ 25k
35×
frame: pan zoomed-in 20× (labels) @ 25k
32×
frame: pan zoomed-in 20× (labels) @ 25k
32×
frame: pan zoomed-in 20× @ 25k
31×
frame: pan zoomed-in 20× @ 25k
30×
frame: pan zoomed-in 20× @ 25k
23×
frame: pan zoomed-in 20× (labels) @ 25k
22×
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
19×
frame: pan zoomed-in 20× (labels) @ 25k
19×
frame: pan zoomed-in 20× @ 25k
19×
init: create + ready @ 26k
18×
export: png full (≤2048 px) @ 25k
18×
frame: pan zoomed-in 20× @ 25k
18×
frame: pan zoomed-in 20× @ 25k
17×
init: create + ready @ 25k
16×
frame: pan zoomed-in 20× (labels) @ 26k
16×
init: create + ready (labels) @ 25k
15×
frame: pan zoomed-in 20× @ 26k
15×
init: create + ready (labels) @ 26k
15×
export: png full (≤2048 px) @ 25k
14×
init: create + ready @ 25k
14×
init: create + ready (labels) @ 25k
14×
init: create + ready (labels) @ 25k
14×
init: create + ready @ 25k
14×
init: create + ready @ 25k
14×
init: create + ready (labels) @ 25k
13×
init: create + ready (labels) @ 25k
13×
init: create + ready @ 25k
13×
init: create + ready (labels) @ 25k
12×
init: create + ready @ 25k
11×
init: create + ready (labels) @ 25k
11×
init: create + ready @ 25k
9.8×
export: png full (≤2048 px) @ 25k
7.4×
export: png full (≤2048 px) @ 25k
7.3×
export: png full (≤2048 px) @ 25k
5.0×
export: png full (≤2048 px) @ 25k
4.7×
export: png full (≤2048 px) @ 26k
4.4×
export: png full (≤2048 px) @ 25k
2.7×
10×100×1000×

render — generated 25k × 50k 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
39×
frame: pan zoomed-in 20×
18×
frame: pan far-zoom ÷8
38×
frame: pan fit-all (labels)
47×
frame: pan zoomed-in 20× (labels)
19×
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)
458 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
978 µs
compaction: compact() one-shot — gpu
20.5 ms
init: create + ready
9.8×
init: create + ready (labels)
11×
init: columnar form (gpu-only) — gpu
140 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
23.1 ms
export: png full (≤2048 px)
5.0×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 653 ms668 ms 675 ms644 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 120
frame: pan zoomed-in 20×v3 296 ms291 ms 302 ms212 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan zoomed-in 20×gpu (device) 4.43 ms4.43 ms 4.45 ms4.40 ms 121
frame: pan far-zoom ÷8v3 639 ms643 ms 658 ms619 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.37 ms1.37 ms 1.38 ms1.36 ms 120
frame: pan fit-all (labels)v3 777 ms796 ms 838 ms760 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.65 ms 121
frame: pan zoomed-in 20× (labels)v3 316 ms308 ms 320 ms226 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) 4.77 ms4.77 ms 4.79 ms4.75 ms 120
pick: hover while panninggpu 17.4 ms24.0 ms 49.3 ms4.20 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.8 ms16.4 ms 120
compaction: pan fit-all, 10% livegpu device (peak slots) 458 µs691 µs 1.16 ms456 µs 118
compaction: pan fit-all, 10% livegpu device (compacted) 978 µs978 µs 983 µs972 µs 119
compaction: compact() one-shotgpu 20.5 ms20.5 ms 20.5 ms20.5 ms 1
init: create + readyv3 2.66 s2.66 s 2.66 s2.66 s 1
init: create + readygpu 272 ms272 ms 272 ms272 ms 1
init: create + ready (labels)v3 3.97 s3.97 s 3.97 s3.97 s 1
init: create + ready (labels)gpu 357 ms357 ms 357 ms357 ms 1
init: columnar form (gpu-only)gpu 140 ms140 ms 140 ms140 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 23.1 ms23.1 ms 23.1 ms23.1 ms 1
export: png full (≤2048 px)v3 1.46 s1.46 s 1.46 s1.46 s 1
export: png full (≤2048 px)gpu 291 ms291 ms 291 ms291 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
39×
frame: pan zoomed-in 20×
17×
frame: pan far-zoom ÷8
38×
frame: pan fit-all (labels)
49×
frame: pan zoomed-in 20× (labels)
20×
pick: hover while panning — gpu
18.0 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)
560 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
1.32 ms
compaction: compact() one-shot — gpu
26.3 ms
init: create + ready
13×
init: create + ready (labels)
14×
init: columnar form (gpu-only) — gpu
167 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
18.4 ms
export: png full (≤2048 px)
7.3×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 659 ms673 ms 681 ms650 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan fit-allgpu (device) 9.90 ms9.90 ms 9.94 ms9.84 ms 121
frame: pan zoomed-in 20×v3 285 ms280 ms 292 ms206 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) 3.83 ms3.83 ms 3.87 ms3.79 ms 121
frame: pan far-zoom ÷8v3 642 ms658 ms 702 ms626 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 6.39 ms6.39 ms 6.40 ms6.38 ms 119
frame: pan fit-all (labels)v3 819 ms838 ms 880 ms802 ms 10
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 122
frame: pan fit-all (labels)gpu (device) 10.2 ms10.2 ms 10.2 ms10.1 ms 120
frame: pan zoomed-in 20× (labels)v3 328 ms320 ms 331 ms232 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.17 ms4.16 ms 4.19 ms4.13 ms 121
pick: hover while panninggpu 18.0 ms17.4 ms 19.6 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) 560 µs556 µs 563 µs492 µs 118
compaction: pan fit-all, 10% livegpu device (compacted) 1.32 ms1.32 ms 1.33 ms1.31 ms 120
compaction: compact() one-shotgpu 26.3 ms26.3 ms 26.3 ms26.3 ms 1
init: create + readyv3 3.24 s3.24 s 3.24 s3.24 s 1
init: create + readygpu 252 ms252 ms 252 ms252 ms 1
init: create + ready (labels)v3 4.35 s4.35 s 4.35 s4.35 s 1
init: create + ready (labels)gpu 314 ms314 ms 314 ms314 ms 1
init: columnar form (gpu-only)gpu 167 ms167 ms 167 ms167 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 18.4 ms18.4 ms 18.4 ms18.4 ms 1
export: png full (≤2048 px)v3 2.03 s2.03 s 2.03 s2.03 s 1
export: png full (≤2048 px)gpu 277 ms277 ms 277 ms277 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
126×
frame: pan zoomed-in 20×
15×
frame: pan far-zoom ÷8
127×
frame: pan fit-all (labels)
125×
frame: pan zoomed-in 20× (labels)
16×
pick: hover while panning — gpu
17.0 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.08 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
958 µs
compaction: compact() one-shot — gpu
18.8 ms
init: create + ready
18×
init: create + ready (labels)
15×
init: columnar form (gpu-only) — gpu
185 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
28.9 ms
export: png full (≤2048 px)
4.4×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 2.10 s2.12 s 2.11 s2.08 s 4
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.00 ms3.00 ms 3.01 ms2.99 ms 118
frame: pan zoomed-in 20×v3 245 ms246 ms 249 ms240 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.16 ms4.16 ms 4.19 ms4.12 ms 121
frame: pan far-zoom ÷8v3 2.12 s2.17 s 2.12 s2.12 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.34 ms1.34 ms 1.35 ms1.33 ms 121
frame: pan fit-all (labels)v3 2.09 s2.11 s 2.10 s2.08 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) 2.34 ms2.35 ms 2.39 ms2.34 ms 119
frame: pan zoomed-in 20× (labels)v3 259 ms270 ms 272 ms252 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.50 ms4.50 ms 4.52 ms4.46 ms 119
pick: hover while panninggpu 17.0 ms9.74 ms 18.4 ms400 µs 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.5 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.08 ms1.08 ms 1.10 ms1.07 ms 119
compaction: pan fit-all, 10% livegpu device (compacted) 958 µs958 µs 963 µs950 µs 117
compaction: compact() one-shotgpu 18.8 ms18.8 ms 18.8 ms18.8 ms 1
init: create + readyv3 5.38 s5.38 s 5.38 s5.38 s 1
init: create + readygpu 293 ms293 ms 293 ms293 ms 1
init: create + ready (labels)v3 6.76 s6.76 s 6.76 s6.76 s 1
init: create + ready (labels)gpu 465 ms465 ms 465 ms465 ms 1
init: columnar form (gpu-only)gpu 185 ms185 ms 185 ms185 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 28.9 ms28.9 ms 28.9 ms28.9 ms 1
export: png full (≤2048 px)v3 1.36 s1.36 s 1.36 s1.36 s 1
export: png full (≤2048 px)gpu 310 ms310 ms 310 ms310 ms 1

render — generated 25k × 50k images (icon-per-type) N=25,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
41×
frame: pan zoomed-in 20×
23×
frame: pan far-zoom ÷8
43×
frame: pan fit-all (labels)
48×
frame: pan zoomed-in 20× (labels)
22×
pick: hover while panning — gpu
18.0 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.16 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
979 µs
compaction: compact() one-shot — gpu
17.4 ms
init: create + ready
16×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
153 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
23.7 ms
export: png full (≤2048 px)
18×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 678 ms681 ms 696 ms670 ms 11
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan fit-allgpu (device) 3.44 ms3.44 ms 3.45 ms3.43 ms 121
frame: pan zoomed-in 20×v3 383 ms400 ms 423 ms361 ms 12
frame: pan zoomed-in 20×gpu 16.7 ms16.7 ms 17.9 ms14.7 ms 121
frame: pan zoomed-in 20×gpu (device) 4.46 ms4.46 ms 4.48 ms4.45 ms 119
frame: pan far-zoom ÷8v3 715 ms718 ms 747 ms686 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 17.1 ms15.7 ms 121
frame: pan far-zoom ÷8gpu (device) 1.42 ms1.42 ms 1.43 ms1.41 ms 118
frame: pan fit-all (labels)v3 798 ms802 ms 822 ms771 ms 10
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 17.0 ms16.2 ms 121
frame: pan fit-all (labels)gpu (device) 3.70 ms3.71 ms 3.72 ms3.69 ms 119
frame: pan zoomed-in 20× (labels)v3 371 ms377 ms 391 ms351 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 17.0 ms16.3 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.80 ms4.80 ms 4.82 ms4.79 ms 121
pick: hover while panninggpu 18.0 ms22.5 ms 45.3 ms7.40 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 120
compaction: pan fit-all, 10% livegpu device (peak slots) 1.16 ms983 µs 1.17 ms458 µs 116
compaction: pan fit-all, 10% livegpu device (compacted) 979 µs979 µs 984 µs972 µs 116
compaction: compact() one-shotgpu 17.4 ms17.4 ms 17.4 ms17.4 ms 1
init: create + readyv3 4.42 s4.42 s 4.42 s4.42 s 1
init: create + readygpu 277 ms277 ms 277 ms277 ms 1
init: create + ready (labels)v3 4.96 s4.96 s 4.96 s4.96 s 1
init: create + ready (labels)gpu 382 ms382 ms 382 ms382 ms 1
init: columnar form (gpu-only)gpu 153 ms153 ms 153 ms153 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 23.7 ms23.7 ms 23.7 ms23.7 ms 1
export: png full (≤2048 px)v3 5.47 s5.47 s 5.47 s5.47 s 1
export: png full (≤2048 px)gpu 301 ms301 ms 301 ms301 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
42×
frame: pan zoomed-in 20×
19×
frame: pan far-zoom ÷8
41×
frame: pan fit-all (labels)
46×
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.7 ms
compaction: pan fit-all, 10% live — gpu (compacted)
16.7 ms
compaction: pan fit-all, 10% live — gpu device (peak slots)
459 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
980 µs
compaction: compact() one-shot — gpu
10.2 ms
init: create + ready
14×
init: create + ready (labels)
14×
init: columnar form (gpu-only) — gpu
147 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
27.5 ms
export: png full (≤2048 px)
4.7×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 704 ms714 ms 723 ms678 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 323 ms318 ms 330 ms230 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.43 ms4.43 ms 4.45 ms4.41 ms 119
frame: pan far-zoom ÷8v3 690 ms696 ms 725 ms671 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.38 ms1.38 ms 1.38 ms1.36 ms 118
frame: pan fit-all (labels)v3 767 ms783 ms 776 ms761 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) 4.55 ms4.55 ms 4.57 ms4.54 ms 121
frame: pan zoomed-in 20× (labels)v3 348 ms338 ms 352 ms236 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.94 ms5.94 ms 5.97 ms5.88 ms 121
pick: hover while panninggpu 17.3 ms16.9 ms 17.4 ms6.60 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.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 459 µs474 µs 636 µs456 µs 117
compaction: pan fit-all, 10% livegpu device (compacted) 980 µs980 µs 986 µs969 µs 120
compaction: compact() one-shotgpu 10.2 ms10.2 ms 10.2 ms10.2 ms 1
init: create + readyv3 3.34 s3.34 s 3.34 s3.34 s 1
init: create + readygpu 243 ms243 ms 243 ms243 ms 1
init: create + ready (labels)v3 4.51 s4.51 s 4.51 s4.51 s 1
init: create + ready (labels)gpu 323 ms323 ms 323 ms323 ms 1
init: columnar form (gpu-only)gpu 147 ms147 ms 147 ms147 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 27.5 ms27.5 ms 27.5 ms27.5 ms 1
export: png full (≤2048 px)v3 1.49 s1.49 s 1.49 s1.49 s 1
export: png full (≤2048 px)gpu 315 ms315 ms 315 ms315 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
35×
frame: pan zoomed-in 20×
19×
frame: pan far-zoom ÷8
35×
frame: pan fit-all (labels)
38×
frame: pan zoomed-in 20× (labels)
20×
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)
1.15 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
979 µs
compaction: compact() one-shot — gpu
9.20 ms
init: create + ready
11×
init: create + ready (labels)
12×
init: columnar form (gpu-only) — gpu
150 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
26.0 ms
export: png full (≤2048 px)
2.7×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 585 ms604 ms 605 ms563 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.8 ms16.4 ms 122
frame: pan fit-allgpu (device) 1.65 ms1.65 ms 1.66 ms1.64 ms 120
frame: pan zoomed-in 20×v3 310 ms305 ms 320 ms220 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) 1.43 ms1.43 ms 1.44 ms1.41 ms 121
frame: pan far-zoom ÷8v3 583 ms587 ms 595 ms571 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.12 ms1.12 ms 1.13 ms1.11 ms 121
frame: pan fit-all (labels)v3 641 ms663 ms 693 ms627 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.95 ms 119
frame: pan zoomed-in 20× (labels)v3 340 ms331 ms 344 ms238 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) 1.63 ms1.63 ms 1.66 ms1.62 ms 118
pick: hover while panninggpu 17.5 ms16.7 ms 17.8 ms3.80 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) 1.15 ms1.15 ms 1.16 ms1.14 ms 120
compaction: pan fit-all, 10% livegpu device (compacted) 979 µs979 µs 984 µs973 µs 118
compaction: compact() one-shotgpu 9.20 ms9.20 ms 9.20 ms9.20 ms 1
init: create + readyv3 2.97 s2.97 s 2.97 s2.97 s 1
init: create + readygpu 263 ms263 ms 263 ms263 ms 1
init: create + ready (labels)v3 4.09 s4.09 s 4.09 s4.09 s 1
init: create + ready (labels)gpu 339 ms339 ms 339 ms339 ms 1
init: columnar form (gpu-only)gpu 150 ms150 ms 150 ms150 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 26.0 ms26.0 ms 26.0 ms26.0 ms 1
export: png full (≤2048 px)v3 704 ms704 ms 704 ms704 ms 1
export: png full (≤2048 px)gpu 260 ms260 ms 260 ms260 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
117×
frame: pan zoomed-in 20×
30×
frame: pan far-zoom ÷8
118×
frame: pan fit-all (labels)
134×
frame: pan zoomed-in 20× (labels)
32×
pick: hover while panning — gpu
18.0 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.16 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
986 µs
compaction: compact() one-shot — gpu
8.60 ms
init: create + ready
14×
init: create + ready (labels)
15×
init: columnar form (gpu-only) — gpu
152 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
26.3 ms
export: png full (≤2048 px)
7.4×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 1.96 s1.98 s 2.06 s1.90 s 5
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan fit-allgpu (device) 3.55 ms3.55 ms 3.56 ms3.54 ms 118
frame: pan zoomed-in 20×v3 501 ms495 ms 509 ms422 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.67 ms4.67 ms 4.69 ms4.66 ms 120
frame: pan far-zoom ÷8v3 1.97 s2.03 s 2.06 s1.93 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.41 ms1.41 ms 1.42 ms1.40 ms 119
frame: pan fit-all (labels)v3 2.23 s2.20 s 2.26 s2.04 s 4
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan fit-all (labels)gpu (device) 3.82 ms3.82 ms 3.83 ms3.80 ms 116
frame: pan zoomed-in 20× (labels)v3 538 ms537 ms 557 ms446 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 121
pick: hover while panninggpu 18.0 ms17.6 ms 18.3 ms7.50 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.8 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.16 ms1.07 ms 1.17 ms461 µs 117
compaction: pan fit-all, 10% livegpu device (compacted) 986 µs986 µs 990 µs980 µs 117
compaction: compact() one-shotgpu 8.60 ms8.60 ms 8.60 ms8.60 ms 1
init: create + readyv3 3.77 s3.77 s 3.77 s3.77 s 1
init: create + readygpu 265 ms265 ms 265 ms265 ms 1
init: create + ready (labels)v3 4.75 s4.75 s 4.75 s4.75 s 1
init: create + ready (labels)gpu 324 ms324 ms 324 ms324 ms 1
init: columnar form (gpu-only)gpu 152 ms152 ms 152 ms152 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 26.3 ms26.3 ms 26.3 ms26.3 ms 1
export: png full (≤2048 px)v3 2.41 s2.41 s 2.41 s2.41 s 1
export: png full (≤2048 px)gpu 326 ms326 ms 326 ms326 ms 1

render — generated 25k × 50k arrows (half hollow, 0.6 alpha) N=25,000 · 1.7 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
133×
frame: pan zoomed-in 20×
31×
frame: pan far-zoom ÷8
145×
frame: pan fit-all (labels)
146×
frame: pan zoomed-in 20× (labels)
32×
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)
460 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
985 µs
compaction: compact() one-shot — gpu
8.40 ms
init: create + ready
14×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
151 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
23.2 ms
export: png full (≤2048 px)
14×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 2.22 s2.27 s 2.25 s2.13 s 4
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.56 ms3.56 ms 3.57 ms3.54 ms 121
frame: pan zoomed-in 20×v3 518 ms515 ms 524 ms448 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.67 ms 120
frame: pan far-zoom ÷8v3 2.42 s2.55 s 2.67 s2.33 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.41 ms1.41 ms 1.42 ms1.40 ms 121
frame: pan fit-all (labels)v3 2.44 s2.46 s 2.47 s2.39 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 120
frame: pan zoomed-in 20× (labels)v3 535 ms530 ms 547 ms443 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.03 ms5.03 ms 5.04 ms5.00 ms 119
pick: hover while panninggpu 17.4 ms17.0 ms 17.5 ms8.70 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.8 ms16.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 460 µs465 µs 636 µs458 µs 112
compaction: pan fit-all, 10% livegpu device (compacted) 985 µs985 µs 991 µs980 µs 119
compaction: compact() one-shotgpu 8.40 ms8.40 ms 8.40 ms8.40 ms 1
init: create + readyv3 3.55 s3.55 s 3.55 s3.55 s 1
init: create + readygpu 259 ms259 ms 259 ms259 ms 1
init: create + ready (labels)v3 4.44 s4.44 s 4.44 s4.44 s 1
init: create + ready (labels)gpu 340 ms340 ms 340 ms340 ms 1
init: columnar form (gpu-only)gpu 151 ms151 ms 151 ms151 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 23.2 ms23.2 ms 23.2 ms23.2 ms 1
export: png full (≤2048 px)v3 4.97 s4.97 s 4.97 s4.97 s 1
export: png full (≤2048 px)gpu 348 ms348 ms 348 ms348 ms 1