Cytoscape.js GPU benchmarks

v4 (src/) vs v3 (v3/src/) · Mitata · times are per-iteration p50 · 2026-08-05 18:38 · 365d4d5a (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)
Commit365d4d5a
refactor(status): drop the unused `now` from indexPage
Machine id2d2ea233
Median speedup (geo-mean) 27× 64 v3-vs-gpu comparisons
Biggest win 264× frame: pan far-zoom ÷8 @ N=19.607k
v3 still ahead 0 comparisons
Total run time 14.0 min quick profile

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

frame: pan far-zoom ÷8 @ 19.607k
264×
frame: pan fit-all (labels) @ 100k
239×
frame: pan fit-all @ 100k
234×
frame: pan far-zoom ÷8 @ 100k
220×
frame: pan fit-all (labels) @ 19.607k
153×
frame: pan fit-all @ 19.607k
132×
frame: pan far-zoom ÷8 @ 26k
125×
frame: pan fit-all @ 26k
123×
frame: pan fit-all (labels) @ 26k
119×
frame: pan zoomed-in 20× (labels) @ 100k
112×
frame: pan zoomed-in 20× @ 100k
106×
frame: pan zoomed-in 20× (labels) @ 19.607k
95×
frame: pan zoomed-in 20× @ 19.607k
77×
frame: pan fit-all (labels) @ 25k
45×
frame: pan fit-all (labels) @ 25k
45×
frame: pan fit-all (labels) @ 25k
44×
frame: pan fit-all (labels) @ 25k
44×
frame: pan far-zoom ÷8 @ 25k
39×
frame: pan fit-all @ 25k
39×
frame: pan fit-all @ 25k
39×
frame: pan fit-all @ 25k
39×
frame: pan far-zoom ÷8 @ 25k
39×
frame: pan fit-all (labels) @ 25k
38×
frame: pan far-zoom ÷8 @ 25k
38×
frame: pan fit-all @ 25k
38×
frame: pan far-zoom ÷8 @ 25k
37×
frame: pan fit-all @ 25k
35×
export: png full (≤2048 px) @ 19.607k
34×
frame: pan far-zoom ÷8 @ 25k
34×
export: png full (≤2048 px) @ 100k
26×
frame: pan zoomed-in 20× (labels) @ 25k
21×
frame: pan zoomed-in 20× (labels) @ 25k
21×
frame: pan zoomed-in 20× @ 25k
20×
frame: pan zoomed-in 20× (labels) @ 25k
20×
frame: pan zoomed-in 20× (labels) @ 25k
19×
frame: pan zoomed-in 20× @ 25k
19×
init: create + ready @ 26k
19×
frame: pan zoomed-in 20× @ 25k
19×
frame: pan zoomed-in 20× (labels) @ 25k
18×
frame: pan zoomed-in 20× @ 25k
18×
frame: pan zoomed-in 20× @ 25k
17×
export: png full (≤2048 px) @ 25k
17×
init: create + ready @ 25k
17×
init: create + ready (labels) @ 26k
15×
frame: pan zoomed-in 20× (labels) @ 26k
15×
frame: pan zoomed-in 20× @ 26k
14×
init: create + ready (labels) @ 25k
13×
init: create + ready @ 25k
13×
init: create + ready @ 25k
13×
init: create + ready (labels) @ 100k
13×
init: create + ready (labels) @ 19.607k
13×
init: create + ready @ 19.607k
13×
init: create + ready (labels) @ 25k
12×
init: create + ready (labels) @ 25k
12×
init: create + ready @ 25k
12×
init: create + ready (labels) @ 25k
11×
init: create + ready (labels) @ 25k
11×
init: create + ready @ 25k
9.2×
init: create + ready @ 100k
8.1×
export: png full (≤2048 px) @ 25k
7.1×
export: png full (≤2048 px) @ 25k
5.2×
export: png full (≤2048 px) @ 26k
4.9×
export: png full (≤2048 px) @ 25k
4.2×
export: png full (≤2048 px) @ 25k
2.5×
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×
17×
frame: pan far-zoom ÷8
37×
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.15 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
978 µs
compaction: compact() one-shot — gpu
20.1 ms
init: create + ready
9.2×
init: create + ready (labels)
11×
init: columnar form (gpu-only) — gpu
146 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
21.0 ms
export: png full (≤2048 px)
4.2×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 630 ms643 ms 648 ms622 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan fit-allgpu (device) 3.40 ms3.40 ms 3.41 ms3.39 ms 120
frame: pan zoomed-in 20×v3 291 ms286 ms 307 ms204 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.43 ms4.43 ms 4.45 ms4.40 ms 120
frame: pan far-zoom ÷8v3 615 ms624 ms 663 ms602 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan far-zoom ÷8gpu (device) 1.38 ms1.38 ms 1.39 ms1.36 ms 118
frame: pan fit-all (labels)v3 727 ms736 ms 753 ms705 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 299 ms293 ms 308 ms209 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 120
pick: hover while panninggpu 17.4 ms17.0 ms 17.6 ms10.2 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 ms990 µs 1.16 ms457 µs 118
compaction: pan fit-all, 10% livegpu device (compacted) 978 µs979 µs 991 µs972 µs 118
compaction: compact() one-shotgpu 20.1 ms20.1 ms 20.1 ms20.1 ms 1
init: create + readyv3 2.60 s2.60 s 2.60 s2.60 s 1
init: create + readygpu 283 ms283 ms 283 ms283 ms 1
init: create + ready (labels)v3 3.67 s3.67 s 3.67 s3.67 s 1
init: create + ready (labels)gpu 333 ms333 ms 333 ms333 ms 1
init: columnar form (gpu-only)gpu 146 ms146 ms 146 ms146 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 21.0 ms21.0 ms 21.0 ms21.0 ms 1
export: png full (≤2048 px)v3 1.42 s1.42 s 1.42 s1.42 s 1
export: png full (≤2048 px)gpu 342 ms342 ms 342 ms342 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
234×
frame: pan zoomed-in 20×
106×
frame: pan far-zoom ÷8
220×
frame: pan fit-all (labels)
239×
frame: pan zoomed-in 20× (labels)
112×
pick: hover while panning — gpu
19.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)
2.21 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
533 µs
compaction: compact() one-shot — gpu
64.8 ms
init: create + ready
8.1×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
698 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
115 ms
export: png full (≤2048 px)
26×
100 µs1 ms10 ms100 ms1 s10 s100 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 3.91 s4.21 s 3.91 s3.91 s 2
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 9.29 ms9.29 ms 9.32 ms9.27 ms 121
frame: pan zoomed-in 20×v3 1.77 s1.74 s 1.78 s1.30 s 5
frame: pan zoomed-in 20×gpu 16.7 ms19.0 ms 33.4 ms16.5 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.67 s3.84 s 3.67 s3.62 s 3
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 1.63 ms1.63 ms 1.63 ms1.63 ms 119
frame: pan fit-all (labels)v3 3.99 s4.42 s 3.99 s3.99 s 2
frame: pan fit-all (labels)gpu 16.7 ms16.7 ms 16.9 ms16.5 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.86 s1.82 s 1.89 s1.33 s 5
frame: pan zoomed-in 20× (labels)gpu 16.7 ms20.4 ms 33.5 ms16.4 ms 99
frame: pan zoomed-in 20× (labels)gpu (device) 20.0 ms20.1 ms 20.2 ms19.9 ms 99
pick: hover while panninggpu 19.5 ms17.7 ms 19.7 ms600 µ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.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 2.21 ms2.21 ms 2.23 ms2.20 ms 121
compaction: pan fit-all, 10% livegpu device (compacted) 533 µs533 µs 536 µs529 µs 113
compaction: compact() one-shotgpu 64.8 ms64.8 ms 64.8 ms64.8 ms 1
init: create + readyv3 16.7 s16.7 s 16.7 s16.7 s 1
init: create + readygpu 2.06 s2.06 s 2.06 s2.06 s 1
init: create + ready (labels)v3 19.7 s19.7 s 19.7 s19.7 s 1
init: create + ready (labels)gpu 1.54 s1.54 s 1.54 s1.54 s 1
init: columnar form (gpu-only)gpu 698 ms698 ms 698 ms698 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 115 ms115 ms 115 ms115 ms 1
export: png full (≤2048 px)v3 6.28 s6.28 s 6.28 s6.28 s 1
export: png full (≤2048 px)gpu 240 ms240 ms 240 ms240 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
132×
frame: pan zoomed-in 20×
77×
frame: pan far-zoom ÷8
264×
frame: pan fit-all (labels)
153×
frame: pan zoomed-in 20× (labels)
95×
pick: hover while panning — gpu
400 µ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.46 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
936 µs
compaction: compact() one-shot — gpu
74.5 ms
init: create + ready
13×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
897 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
54.6 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.40 s4.89 s 4.40 s4.40 s 2
frame: pan fit-allgpu 33.4 ms37.0 ms 50.1 ms33.1 ms 54
frame: pan fit-allgpu (device) 36.9 ms37.0 ms 37.4 ms36.7 ms 55
frame: pan zoomed-in 20×v3 2.55 s2.58 s 2.60 s2.55 s 4
frame: pan zoomed-in 20×gpu 33.3 ms36.0 ms 50.1 ms33.1 ms 56
frame: pan zoomed-in 20×gpu (device) 35.7 ms35.8 ms 36.5 ms34.8 ms 57
frame: pan far-zoom ÷8v3 4.41 s5.36 s 4.41 s4.41 s 2
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.8 ms16.5 ms 121
frame: pan far-zoom ÷8gpu (device) 1.55 ms1.56 ms 1.59 ms1.54 ms 118
frame: pan fit-all (labels)v3 5.11 s5.35 s 5.11 s5.11 s 2
frame: pan fit-all (labels)gpu 33.4 ms37.7 ms 50.1 ms33.1 ms 54
frame: pan fit-all (labels)gpu (device) 37.2 ms37.4 ms 37.9 ms37.0 ms 54
frame: pan zoomed-in 20× (labels)v3 3.17 s3.17 s 3.17 s3.11 s 3
frame: pan zoomed-in 20× (labels)gpu 33.4 ms38.0 ms 50.1 ms33.1 ms 53
frame: pan zoomed-in 20× (labels)gpu (device) 37.7 ms37.7 ms 38.3 ms36.7 ms 53
pick: hover while panninggpu 400 µs17.9 ms 72.1 ms0.00 ns 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) 1.46 ms1.46 ms 1.48 ms1.45 ms 119
compaction: pan fit-all, 10% livegpu device (compacted) 936 µs936 µs 939 µs932 µs 118
compaction: compact() one-shotgpu 74.5 ms74.5 ms 74.5 ms74.5 ms 1
init: create + readyv3 21.0 s21.0 s 21.0 s21.0 s 1
init: create + readygpu 1.67 s1.67 s 1.67 s1.67 s 1
init: create + ready (labels)v3 23.5 s23.5 s 23.5 s23.5 s 1
init: create + ready (labels)gpu 1.84 s1.84 s 1.84 s1.84 s 1
init: columnar form (gpu-only)gpu 897 ms897 ms 897 ms897 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 54.6 ms54.6 ms 54.6 ms54.6 ms 1
export: png full (≤2048 px)v3 6.81 s6.81 s 6.81 s6.81 s 1
export: png full (≤2048 px)gpu 198 ms198 ms 198 ms198 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×
18×
frame: pan far-zoom ÷8
38×
frame: pan fit-all (labels)
44×
frame: pan zoomed-in 20× (labels)
19×
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)
559 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
1.32 ms
compaction: compact() one-shot — gpu
14.3 ms
init: create + ready
12×
init: create + ready (labels)
12×
init: columnar form (gpu-only) — gpu
147 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
14.4 ms
export: png full (≤2048 px)
7.1×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 655 ms669 ms 676 ms645 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 9.90 ms9.90 ms 9.95 ms9.84 ms 121
frame: pan zoomed-in 20×v3 296 ms295 ms 329 ms209 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.86 ms3.80 ms 119
frame: pan far-zoom ÷8v3 640 ms643 ms 653 ms630 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan far-zoom ÷8gpu (device) 6.39 ms6.39 ms 6.40 ms6.37 ms 121
frame: pan fit-all (labels)v3 737 ms751 ms 757 ms725 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) 10.2 ms10.2 ms 10.2 ms10.1 ms 121
frame: pan zoomed-in 20× (labels)v3 318 ms321 ms 329 ms224 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.17 ms4.17 ms 4.19 ms4.13 ms 118
pick: hover while panninggpu 17.5 ms20.7 ms 18.8 ms8.50 ms 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.5 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 559 µs546 µs 566 µs491 µs 118
compaction: pan fit-all, 10% livegpu device (compacted) 1.32 ms1.32 ms 1.33 ms1.31 ms 116
compaction: compact() one-shotgpu 14.3 ms14.3 ms 14.3 ms14.3 ms 1
init: create + readyv3 3.01 s3.01 s 3.01 s3.01 s 1
init: create + readygpu 259 ms259 ms 259 ms259 ms 1
init: create + ready (labels)v3 3.88 s3.88 s 3.88 s3.88 s 1
init: create + ready (labels)gpu 333 ms333 ms 333 ms333 ms 1
init: columnar form (gpu-only)gpu 147 ms147 ms 147 ms147 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 14.4 ms14.4 ms 14.4 ms14.4 ms 1
export: png full (≤2048 px)v3 1.94 s1.94 s 1.94 s1.94 s 1
export: png full (≤2048 px)gpu 272 ms272 ms 272 ms272 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
123×
frame: pan zoomed-in 20×
14×
frame: pan far-zoom ÷8
125×
frame: pan fit-all (labels)
119×
frame: pan zoomed-in 20× (labels)
15×
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.08 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
958 µs
compaction: compact() one-shot — gpu
18.5 ms
init: create + ready
19×
init: create + ready (labels)
15×
init: columnar form (gpu-only) — gpu
164 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
26.3 ms
export: png full (≤2048 px)
4.9×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 2.05 s2.08 s 2.07 s2.02 s 4
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan fit-allgpu (device) 3.00 ms3.00 ms 3.01 ms2.99 ms 120
frame: pan zoomed-in 20×v3 242 ms242 ms 245 ms235 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.16 ms4.16 ms 4.19 ms4.12 ms 121
frame: pan far-zoom ÷8v3 2.08 s2.10 s 2.13 s2.04 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.12 ms 1.35 ms612 µs 118
frame: pan fit-all (labels)v3 1.99 s2.02 s 2.00 s1.97 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.33 ms 120
frame: pan zoomed-in 20× (labels)v3 250 ms247 ms 252 ms240 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 4.50 ms4.50 ms 4.52 ms4.45 ms 119
pick: hover while panninggpu 17.5 ms10.4 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.4 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 1.08 ms1.08 ms 1.09 ms1.08 ms 118
compaction: pan fit-all, 10% livegpu device (compacted) 958 µs958 µs 964 µs947 µs 119
compaction: compact() one-shotgpu 18.5 ms18.5 ms 18.5 ms18.5 ms 1
init: create + readyv3 5.16 s5.16 s 5.16 s5.16 s 1
init: create + readygpu 277 ms277 ms 277 ms277 ms 1
init: create + ready (labels)v3 6.47 s6.47 s 6.47 s6.47 s 1
init: create + ready (labels)gpu 418 ms418 ms 418 ms418 ms 1
init: columnar form (gpu-only)gpu 164 ms164 ms 164 ms164 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 1.34 s1.34 s 1.34 s1.34 s 1
export: png full (≤2048 px)gpu 274 ms274 ms 274 ms274 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
39×
frame: pan zoomed-in 20×
20×
frame: pan far-zoom ÷8
39×
frame: pan fit-all (labels)
45×
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)
460 µs
compaction: pan fit-all, 10% live — gpu device (compacted)
979 µs
compaction: compact() one-shot — gpu
11.6 ms
init: create + ready
17×
init: create + ready (labels)
13×
init: columnar form (gpu-only) — gpu
165 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
28.4 ms
export: png full (≤2048 px)
17×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 645 ms646 ms 650 ms641 ms 12
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 336 ms343 ms 356 ms326 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.46 ms4.46 ms 4.48 ms4.44 ms 121
frame: pan far-zoom ÷8v3 645 ms650 ms 664 ms636 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.5 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 753 ms756 ms 769 ms736 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.69 ms 121
frame: pan zoomed-in 20× (labels)v3 356 ms362 ms 372 ms347 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.80 ms4.80 ms 4.82 ms4.79 ms 121
pick: hover while panninggpu 17.3 ms16.7 ms 17.7 ms3.30 ms 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.5 ms 121
compaction: pan fit-all, 10% livegpu device (peak slots) 460 µs468 µs 637 µs457 µs 113
compaction: pan fit-all, 10% livegpu device (compacted) 979 µs979 µs 984 µs972 µs 120
compaction: compact() one-shotgpu 11.6 ms11.6 ms 11.6 ms11.6 ms 1
init: create + readyv3 4.41 s4.41 s 4.41 s4.41 s 1
init: create + readygpu 263 ms263 ms 263 ms263 ms 1
init: create + ready (labels)v3 4.68 s4.68 s 4.68 s4.68 s 1
init: create + ready (labels)gpu 354 ms354 ms 354 ms354 ms 1
init: columnar form (gpu-only)gpu 165 ms165 ms 165 ms165 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 28.4 ms28.4 ms 28.4 ms28.4 ms 1
export: png full (≤2048 px)v3 4.70 s4.70 s 4.70 s4.70 s 1
export: png full (≤2048 px)gpu 274 ms274 ms 274 ms274 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
39×
frame: pan zoomed-in 20×
19×
frame: pan far-zoom ÷8
39×
frame: pan fit-all (labels)
45×
frame: pan zoomed-in 20× (labels)
21×
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)
1.15 ms
compaction: pan fit-all, 10% live — gpu device (compacted)
978 µs
compaction: compact() one-shot — gpu
10.0 ms
init: create + ready
13×
init: create + ready (labels)
12×
init: columnar form (gpu-only) — gpu
134 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
22.9 ms
export: png full (≤2048 px)
5.2×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 646 ms663 ms 667 ms634 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.4 ms 121
frame: pan fit-allgpu (device) 3.40 ms3.40 ms 3.41 ms3.39 ms 121
frame: pan zoomed-in 20×v3 309 ms301 ms 314 ms221 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 119
frame: pan far-zoom ÷8v3 658 ms667 ms 705 ms628 ms 12
frame: pan far-zoom ÷8gpu 16.7 ms16.7 ms 16.9 ms16.3 ms 121
frame: pan far-zoom ÷8gpu (device) 1.38 ms1.38 ms 1.39 ms1.36 ms 119
frame: pan fit-all (labels)v3 754 ms769 ms 783 ms738 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) 4.55 ms4.55 ms 4.56 ms4.53 ms 121
frame: pan zoomed-in 20× (labels)v3 348 ms341 ms 358 ms233 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) 5.95 ms5.95 ms 5.97 ms5.87 ms 120
pick: hover while panninggpu 17.2 ms16.8 ms 17.5 ms6.60 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.5 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) 978 µs978 µs 983 µs972 µs 118
compaction: compact() one-shotgpu 10.0 ms10.0 ms 10.0 ms10.0 ms 1
init: create + readyv3 3.05 s3.05 s 3.05 s3.05 s 1
init: create + readygpu 237 ms237 ms 237 ms237 ms 1
init: create + ready (labels)v3 4.40 s4.40 s 4.40 s4.40 s 1
init: create + ready (labels)gpu 362 ms362 ms 362 ms362 ms 1
init: columnar form (gpu-only)gpu 134 ms134 ms 134 ms134 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 22.9 ms22.9 ms 22.9 ms22.9 ms 1
export: png full (≤2048 px)v3 1.44 s1.44 s 1.44 s1.44 s 1
export: png full (≤2048 px)gpu 275 ms275 ms 275 ms275 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
34×
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)
978 µs
compaction: compact() one-shot — gpu
9.30 ms
init: create + ready
13×
init: create + ready (labels)
11×
init: columnar form (gpu-only) — gpu
153 ms
init: columnar form (gpu-only) — convert (toColumnarElements)
28.1 ms
export: png full (≤2048 px)
2.5×
100 µs1 ms10 ms100 ms1 s10 s
All stats (table view)
groupbenchp50avgp99minsamples
frame: pan fit-allv3 578 ms595 ms 597 ms573 ms 12
frame: pan fit-allgpu 16.7 ms16.7 ms 16.9 ms16.5 ms 121
frame: pan fit-allgpu (device) 1.66 ms1.66 ms 1.66 ms1.65 ms 117
frame: pan zoomed-in 20×v3 316 ms309 ms 321 ms222 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) 2.24 ms2.24 ms 2.26 ms2.22 ms 121
frame: pan far-zoom ÷8v3 569 ms573 ms 587 ms564 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.12 ms1.12 ms 1.13 ms1.12 ms 120
frame: pan fit-all (labels)v3 641 ms654 ms 656 ms631 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 115
frame: pan zoomed-in 20× (labels)v3 330 ms323 ms 335 ms235 ms 12
frame: pan zoomed-in 20× (labels)gpu 16.7 ms16.7 ms 16.8 ms16.3 ms 121
frame: pan zoomed-in 20× (labels)gpu (device) 1.63 ms1.63 ms 1.65 ms1.62 ms 119
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.8 ms16.3 ms 121
compaction: pan fit-all, 10% livegpu (compacted) 16.7 ms16.7 ms 16.9 ms16.5 ms 120
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) 978 µs978 µs 986 µs973 µs 118
compaction: compact() one-shotgpu 9.30 ms9.30 ms 9.30 ms9.30 ms 1
init: create + readyv3 3.16 s3.16 s 3.16 s3.16 s 1
init: create + readygpu 244 ms244 ms 244 ms244 ms 1
init: create + ready (labels)v3 3.87 s3.87 s 3.87 s3.87 s 1
init: create + ready (labels)gpu 353 ms353 ms 353 ms353 ms 1
init: columnar form (gpu-only)gpu 153 ms153 ms 153 ms153 ms 1
init: columnar form (gpu-only)convert (toColumnarElements) 28.1 ms28.1 ms 28.1 ms28.1 ms 1
export: png full (≤2048 px)v3 749 ms749 ms 749 ms749 ms 1
export: png full (≤2048 px)gpu 300 ms300 ms 300 ms300 ms 1