| CPU | Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz |
|---|---|
| Cores | 8 physical / 16 logical · 3.6 GHz base · 5 GHz max |
| Memory | 62.6 GiB |
| GPU | CoffeeLake-S GT2 [UHD Graphics 630] i915 Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (8.0 GiB) amdgpu |
| Adapter | amd gcn-4 |
| Browser | chromium 149.0.7827.55 |
| OS | Fedora Linux 43 (Workstation Edition) · 7.1.10-100.fc43.x86_64 · x64 |
| Node | v24.18.0 (v8 13.6.233.17-node.50) |
| Commit | 9ed49abc docs(113): the performance review recorded — what the sweep measured and what it fixed |
| Machine id | 5cf3f79c |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 617 ms | 631 ms | 630 ms | 606 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.72 ms | 3.72 ms | 3.73 ms | 3.70 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 289 ms | 285 ms | 308 ms | 204 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.83 ms | 4.83 ms | 4.84 ms | 4.80 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 627 ms | 629 ms | 640 ms | 612 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 689 µs | 657 µs | 694 µs | 553 µs | 121 |
| frame: pan fit-all (labels) | v3 | 727 ms | 738 ms | 735 ms | 715 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 3.97 ms | 3.97 ms | 4.00 ms | 3.95 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 301 ms | 294 ms | 303 ms | 214 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.16 ms | 5.16 ms | 5.18 ms | 5.14 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 17.0 ms | 21.3 ms | 300 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 120 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 434 µs | 434 µs | 436 µs | 430 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 338 µs | 338 µs | 341 µs | 336 µs | 120 |
| compaction: compact() one-shot | gpu | 19.8 ms | 19.8 ms | 19.8 ms | 19.8 ms | 1 |
| init: create + ready | v3 | 2.61 s | 2.61 s | 2.61 s | 2.61 s | 1 |
| init: create + ready | gpu | 138 ms | 138 ms | 138 ms | 138 ms | 1 |
| init: create + ready (labels) | v3 | 3.53 s | 3.53 s | 3.53 s | 3.53 s | 1 |
| init: create + ready (labels) | gpu | 201 ms | 201 ms | 201 ms | 201 ms | 1 |
| init: columnar form (gpu-only) | gpu | 83.2 ms | 83.2 ms | 83.2 ms | 83.2 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 24.7 ms | 24.7 ms | 24.7 ms | 24.7 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.43 s | 1.43 s | 1.43 s | 1.43 s | 1 |
| export: png full (≤2048 px) | gpu | 277 ms | 277 ms | 277 ms | 277 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 3.50 s | 3.75 s | 3.50 s | 3.41 s | 3 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 10.0 ms | 10.0 ms | 10.0 ms | 10.0 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 1.78 s | 1.75 s | 1.80 s | 1.31 s | 5 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 20.3 ms | 33.5 ms | 16.4 ms | 100 |
| frame: pan zoomed-in 20× | gpu (device) | 20.1 ms | 20.1 ms | 20.2 ms | 20.0 ms | 100 |
| frame: pan far-zoom ÷8 | v3 | 3.60 s | 3.59 s | 3.60 s | 3.57 s | 3 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 1.57 ms | 1.56 ms | 1.58 ms | 1.52 ms | 121 |
| frame: pan fit-all (labels) | v3 | 4.03 s | 4.45 s | 4.03 s | 4.03 s | 2 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.3 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 11.2 ms | 11.2 ms | 11.2 ms | 11.1 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 1.86 s | 1.96 s | 2.14 s | 1.32 s | 5 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 21.7 ms | 33.5 ms | 16.4 ms | 92 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 21.5 ms | 21.5 ms | 21.6 ms | 21.4 ms | 93 |
| pick: hover while panning | gpu | 19.1 ms | 18.7 ms | 21.0 ms | 500 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.3 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 831 µs | 856 µs | 1.01 ms | 827 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 492 µs | 492 µs | 495 µs | 489 µs | 121 |
| compaction: compact() one-shot | gpu | 64.1 ms | 64.1 ms | 64.1 ms | 64.1 ms | 1 |
| init: create + ready | v3 | 16.1 s | 16.1 s | 16.1 s | 16.1 s | 1 |
| init: create + ready | gpu | 578 ms | 578 ms | 578 ms | 578 ms | 1 |
| init: create + ready (labels) | v3 | 19.0 s | 19.0 s | 19.0 s | 19.0 s | 1 |
| init: create + ready (labels) | gpu | 785 ms | 785 ms | 785 ms | 785 ms | 1 |
| init: columnar form (gpu-only) | gpu | 479 ms | 479 ms | 479 ms | 479 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 186 ms | 186 ms | 186 ms | 186 ms | 1 |
| export: png full (≤2048 px) | v3 | 6.63 s | 6.63 s | 6.63 s | 6.63 s | 1 |
| export: png full (≤2048 px) | gpu | 239 ms | 239 ms | 239 ms | 239 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 4.34 s | 4.83 s | 4.34 s | 4.34 s | 2 |
| frame: pan fit-all | gpu | 33.4 ms | 38.8 ms | 50.2 ms | 33.2 ms | 52 |
| frame: pan fit-all | gpu (device) | 38.4 ms | 38.4 ms | 38.7 ms | 38.0 ms | 52 |
| frame: pan zoomed-in 20× | v3 | 2.45 s | 2.68 s | 2.45 s | 2.43 s | 3 |
| frame: pan zoomed-in 20× | gpu | 33.4 ms | 36.7 ms | 50.1 ms | 33.0 ms | 55 |
| frame: pan zoomed-in 20× | gpu (device) | 36.6 ms | 36.6 ms | 37.4 ms | 35.5 ms | 56 |
| frame: pan far-zoom ÷8 | v3 | 4.27 s | 5.52 s | 4.27 s | 4.27 s | 2 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 1.47 ms | 1.47 ms | 1.49 ms | 1.46 ms | 121 |
| frame: pan fit-all (labels) | v3 | 4.94 s | 5.24 s | 4.94 s | 4.94 s | 2 |
| frame: pan fit-all (labels) | gpu | 33.4 ms | 39.2 ms | 50.1 ms | 33.2 ms | 51 |
| frame: pan fit-all (labels) | gpu (device) | 38.7 ms | 38.8 ms | 39.4 ms | 38.3 ms | 52 |
| frame: pan zoomed-in 20× (labels) | v3 | 3.18 s | 3.16 s | 3.18 s | 3.07 s | 3 |
| frame: pan zoomed-in 20× (labels) | gpu | 33.4 ms | 38.8 ms | 50.1 ms | 33.2 ms | 52 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 38.5 ms | 38.5 ms | 39.2 ms | 37.5 ms | 53 |
| pick: hover while panning | gpu | 300 µs | 25.9 ms | 76.6 ms | 0.00 ns | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 1.23 ms | 1.24 ms | 1.27 ms | 1.19 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 805 µs | 773 µs | 821 µs | 709 µs | 121 |
| compaction: compact() one-shot | gpu | 65.6 ms | 65.6 ms | 65.6 ms | 65.6 ms | 1 |
| init: create + ready | v3 | 20.1 s | 20.1 s | 20.1 s | 20.1 s | 1 |
| init: create + ready | gpu | 485 ms | 485 ms | 485 ms | 485 ms | 1 |
| init: create + ready (labels) | v3 | 23.6 s | 23.6 s | 23.6 s | 23.6 s | 1 |
| init: create + ready (labels) | gpu | 554 ms | 554 ms | 554 ms | 554 ms | 1 |
| init: columnar form (gpu-only) | gpu | 419 ms | 419 ms | 419 ms | 419 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 48.2 ms | 48.2 ms | 48.2 ms | 48.2 ms | 1 |
| export: png full (≤2048 px) | v3 | 6.49 s | 6.49 s | 6.49 s | 6.49 s | 1 |
| export: png full (≤2048 px) | gpu | 201 ms | 201 ms | 201 ms | 201 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 627 ms | 637 ms | 668 ms | 605 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.3 ms | 121 |
| frame: pan fit-all | gpu (device) | 13.2 ms | 13.2 ms | 13.3 ms | 13.2 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 281 ms | 276 ms | 287 ms | 201 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.13 ms | 4.13 ms | 4.17 ms | 4.08 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 627 ms | 631 ms | 643 ms | 619 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 12.9 ms | 12.9 ms | 12.9 ms | 12.9 ms | 121 |
| frame: pan fit-all (labels) | v3 | 742 ms | 758 ms | 830 ms | 706 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 13.5 ms | 13.5 ms | 13.5 ms | 13.5 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 300 ms | 294 ms | 307 ms | 214 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 4.50 ms | 4.50 ms | 4.53 ms | 4.46 ms | 121 |
| pick: hover while panning | gpu | 19.4 ms | 18.2 ms | 19.9 ms | 300 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 578 µs | 578 µs | 580 µs | 575 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 495 µs | 495 µs | 498 µs | 493 µs | 121 |
| compaction: compact() one-shot | gpu | 15.2 ms | 15.2 ms | 15.2 ms | 15.2 ms | 1 |
| init: create + ready | v3 | 3.15 s | 3.15 s | 3.15 s | 3.15 s | 1 |
| init: create + ready | gpu | 120 ms | 120 ms | 120 ms | 120 ms | 1 |
| init: create + ready (labels) | v3 | 3.46 s | 3.46 s | 3.46 s | 3.46 s | 1 |
| init: create + ready (labels) | gpu | 207 ms | 207 ms | 207 ms | 207 ms | 1 |
| init: columnar form (gpu-only) | gpu | 93.3 ms | 93.3 ms | 93.3 ms | 93.3 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 17.8 ms | 17.8 ms | 17.8 ms | 17.8 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.32 s | 1.32 s | 1.32 s | 1.32 s | 1 |
| export: png full (≤2048 px) | gpu | 260 ms | 260 ms | 260 ms | 260 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 2.05 s | 2.06 s | 2.05 s | 2.03 s | 4 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 2.30 ms | 2.29 ms | 2.31 ms | 2.26 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 241 ms | 245 ms | 252 ms | 230 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.3 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.56 ms | 4.55 ms | 4.58 ms | 4.48 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 2.01 s | 2.02 s | 2.04 s | 1.99 s | 4 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 702 µs | 689 µs | 705 µs | 564 µs | 121 |
| frame: pan fit-all (labels) | v3 | 1.96 s | 1.99 s | 2.04 s | 1.94 s | 5 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 2.52 ms | 2.53 ms | 2.55 ms | 2.51 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 250 ms | 250 ms | 253 ms | 245 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.3 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 4.91 ms | 4.91 ms | 4.96 ms | 4.87 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 17.3 ms | 17.9 ms | 8.60 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 120 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 120 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 459 µs | 458 µs | 461 µs | 454 µs | 120 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 376 µs | 376 µs | 378 µs | 374 µs | 120 |
| compaction: compact() one-shot | gpu | 14.3 ms | 14.3 ms | 14.3 ms | 14.3 ms | 1 |
| init: create + ready | v3 | 5.24 s | 5.24 s | 5.24 s | 5.24 s | 1 |
| init: create + ready | gpu | 150 ms | 150 ms | 150 ms | 150 ms | 1 |
| init: create + ready (labels) | v3 | 5.99 s | 5.99 s | 5.99 s | 5.99 s | 1 |
| init: create + ready (labels) | gpu | 310 ms | 310 ms | 310 ms | 310 ms | 1 |
| init: columnar form (gpu-only) | gpu | 126 ms | 126 ms | 126 ms | 126 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 29.6 ms | 29.6 ms | 29.6 ms | 29.6 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.40 s | 1.40 s | 1.40 s | 1.40 s | 1 |
| export: png full (≤2048 px) | gpu | 255 ms | 255 ms | 255 ms | 255 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 646 ms | 647 ms | 649 ms | 638 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.76 ms | 3.76 ms | 3.77 ms | 3.75 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 328 ms | 338 ms | 350 ms | 319 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.85 ms | 4.85 ms | 4.87 ms | 4.82 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 656 ms | 657 ms | 666 ms | 644 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.3 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 748 µs | 702 µs | 753 µs | 600 µs | 121 |
| frame: pan fit-all (labels) | v3 | 736 ms | 739 ms | 759 ms | 718 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 4.00 ms | 4.00 ms | 4.02 ms | 3.99 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 352 ms | 359 ms | 363 ms | 335 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.20 ms | 5.21 ms | 5.24 ms | 5.18 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 18.2 ms | 17.6 ms | 500 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 433 µs | 433 µs | 436 µs | 427 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 338 µs | 338 µs | 340 µs | 336 µs | 121 |
| compaction: compact() one-shot | gpu | 14.7 ms | 14.7 ms | 14.7 ms | 14.7 ms | 1 |
| init: create + ready | v3 | 4.32 s | 4.32 s | 4.32 s | 4.32 s | 1 |
| init: create + ready | gpu | 151 ms | 151 ms | 151 ms | 151 ms | 1 |
| init: create + ready (labels) | v3 | 4.73 s | 4.73 s | 4.73 s | 4.73 s | 1 |
| init: create + ready (labels) | gpu | 215 ms | 215 ms | 215 ms | 215 ms | 1 |
| init: columnar form (gpu-only) | gpu | 113 ms | 113 ms | 113 ms | 113 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 33.4 ms | 33.4 ms | 33.4 ms | 33.4 ms | 1 |
| export: png full (≤2048 px) | v3 | 4.77 s | 4.77 s | 4.77 s | 4.77 s | 1 |
| export: png full (≤2048 px) | gpu | 283 ms | 283 ms | 283 ms | 283 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 642 ms | 660 ms | 665 ms | 636 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.70 ms | 3.70 ms | 3.72 ms | 3.65 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 307 ms | 304 ms | 322 ms | 215 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.83 ms | 4.83 ms | 4.85 ms | 4.81 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 624 ms | 639 ms | 649 ms | 619 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 689 µs | 662 µs | 694 µs | 551 µs | 121 |
| frame: pan fit-all (labels) | v3 | 747 ms | 768 ms | 791 ms | 743 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 4.90 ms | 4.90 ms | 4.92 ms | 4.87 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 344 ms | 337 ms | 355 ms | 237 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 6.37 ms | 6.36 ms | 6.39 ms | 6.23 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 17.2 ms | 17.5 ms | 8.30 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.9 ms | 16.2 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 435 µs | 435 µs | 437 µs | 432 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 340 µs | 340 µs | 342 µs | 336 µs | 121 |
| compaction: compact() one-shot | gpu | 14.1 ms | 14.1 ms | 14.1 ms | 14.1 ms | 1 |
| init: create + ready | v3 | 2.95 s | 2.95 s | 2.95 s | 2.95 s | 1 |
| init: create + ready | gpu | 96.2 ms | 96.2 ms | 96.2 ms | 96.2 ms | 1 |
| init: create + ready (labels) | v3 | 4.42 s | 4.42 s | 4.42 s | 4.42 s | 1 |
| init: create + ready (labels) | gpu | 264 ms | 264 ms | 264 ms | 264 ms | 1 |
| init: columnar form (gpu-only) | gpu | 87.7 ms | 87.7 ms | 87.7 ms | 87.7 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 25.1 ms | 25.1 ms | 25.1 ms | 25.1 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.45 s | 1.45 s | 1.45 s | 1.45 s | 1 |
| export: png full (≤2048 px) | gpu | 374 ms | 374 ms | 374 ms | 374 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 645 ms | 658 ms | 658 ms | 633 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.68 ms | 3.68 ms | 3.70 ms | 3.67 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 307 ms | 300 ms | 311 ms | 211 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.82 ms | 4.82 ms | 4.85 ms | 4.78 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 641 ms | 643 ms | 658 ms | 628 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 688 µs | 683 µs | 692 µs | 552 µs | 121 |
| frame: pan fit-all (labels) | v3 | 719 ms | 734 ms | 728 ms | 709 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 4.92 ms | 4.92 ms | 4.93 ms | 4.88 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 325 ms | 328 ms | 352 ms | 237 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 6.48 ms | 6.47 ms | 6.51 ms | 6.36 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 18.5 ms | 17.9 ms | 13.2 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 435 µs | 435 µs | 437 µs | 432 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 339 µs | 338 µs | 341 µs | 333 µs | 121 |
| compaction: compact() one-shot | gpu | 10.0 ms | 10.0 ms | 10.0 ms | 10.0 ms | 1 |
| init: create + ready | v3 | 3.14 s | 3.14 s | 3.14 s | 3.14 s | 1 |
| init: create + ready | gpu | 107 ms | 107 ms | 107 ms | 107 ms | 1 |
| init: create + ready (labels) | v3 | 4.22 s | 4.22 s | 4.22 s | 4.22 s | 1 |
| init: create + ready (labels) | gpu | 188 ms | 188 ms | 188 ms | 188 ms | 1 |
| init: columnar form (gpu-only) | gpu | 81.2 ms | 81.2 ms | 81.2 ms | 81.2 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 23.2 ms | 23.2 ms | 23.2 ms | 23.2 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.47 s | 1.47 s | 1.47 s | 1.47 s | 1 |
| export: png full (≤2048 px) | gpu | 261 ms | 261 ms | 261 ms | 261 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 568 ms | 582 ms | 592 ms | 556 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 1.27 ms | 1.28 ms | 1.31 ms | 1.27 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 306 ms | 300 ms | 313 ms | 217 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 1.52 ms | 1.53 ms | 1.55 ms | 1.51 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 553 ms | 561 ms | 588 ms | 545 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 524 µs | 524 µs | 527 µs | 521 µs | 121 |
| frame: pan fit-all (labels) | v3 | 640 ms | 658 ms | 661 ms | 630 ms | 12 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 1.46 ms | 1.46 ms | 1.49 ms | 1.42 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 345 ms | 345 ms | 351 ms | 337 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 1.75 ms | 1.75 ms | 1.77 ms | 1.71 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 17.1 ms | 17.5 ms | 4.70 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 435 µs | 435 µs | 437 µs | 432 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 340 µs | 340 µs | 341 µs | 337 µs | 121 |
| compaction: compact() one-shot | gpu | 12.5 ms | 12.5 ms | 12.5 ms | 12.5 ms | 1 |
| init: create + ready | v3 | 3.00 s | 3.00 s | 3.00 s | 3.00 s | 1 |
| init: create + ready | gpu | 119 ms | 119 ms | 119 ms | 119 ms | 1 |
| init: create + ready (labels) | v3 | 4.09 s | 4.09 s | 4.09 s | 4.09 s | 1 |
| init: create + ready (labels) | gpu | 199 ms | 199 ms | 199 ms | 199 ms | 1 |
| init: columnar form (gpu-only) | gpu | 100 ms | 100 ms | 100 ms | 100 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 29.4 ms | 29.4 ms | 29.4 ms | 29.4 ms | 1 |
| export: png full (≤2048 px) | v3 | 690 ms | 690 ms | 690 ms | 690 ms | 1 |
| export: png full (≤2048 px) | gpu | 336 ms | 336 ms | 336 ms | 336 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 2.02 s | 1.94 s | 2.02 s | 1.77 s | 5 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.83 ms | 3.83 ms | 3.86 ms | 3.81 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 485 ms | 482 ms | 493 ms | 406 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 5.05 ms | 5.05 ms | 5.09 ms | 5.03 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 2.01 s | 2.01 s | 2.04 s | 1.95 s | 4 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 705 µs | 678 µs | 708 µs | 565 µs | 121 |
| frame: pan fit-all (labels) | v3 | 2.15 s | 2.15 s | 2.17 s | 2.08 s | 4 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 4.12 ms | 4.12 ms | 4.13 ms | 4.10 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 493 ms | 488 ms | 503 ms | 410 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.41 ms | 5.41 ms | 5.43 ms | 5.39 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 17.2 ms | 17.7 ms | 10.5 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 435 µs | 435 µs | 438 µs | 433 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 340 µs | 340 µs | 342 µs | 338 µs | 121 |
| compaction: compact() one-shot | gpu | 12.0 ms | 12.0 ms | 12.0 ms | 12.0 ms | 1 |
| init: create + ready | v3 | 3.55 s | 3.55 s | 3.55 s | 3.55 s | 1 |
| init: create + ready | gpu | 90.1 ms | 90.1 ms | 90.1 ms | 90.1 ms | 1 |
| init: create + ready (labels) | v3 | 4.30 s | 4.30 s | 4.30 s | 4.30 s | 1 |
| init: create + ready (labels) | gpu | 223 ms | 223 ms | 223 ms | 223 ms | 1 |
| init: columnar form (gpu-only) | gpu | 101 ms | 101 ms | 101 ms | 101 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 24.0 ms | 24.0 ms | 24.0 ms | 24.0 ms | 1 |
| export: png full (≤2048 px) | v3 | 2.10 s | 2.10 s | 2.10 s | 2.10 s | 1 |
| export: png full (≤2048 px) | gpu | 269 ms | 269 ms | 269 ms | 269 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 2.22 s | 2.20 s | 2.23 s | 2.05 s | 4 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.86 ms | 3.86 ms | 3.88 ms | 3.85 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 483 ms | 484 ms | 502 ms | 420 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 5.08 ms | 5.07 ms | 5.09 ms | 5.05 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 2.17 s | 2.18 s | 2.17 s | 2.12 s | 4 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 703 µs | 676 µs | 707 µs | 563 µs | 121 |
| frame: pan fit-all (labels) | v3 | 2.53 s | 2.52 s | 2.55 s | 2.32 s | 4 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 4.11 ms | 4.11 ms | 4.12 ms | 4.09 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 506 ms | 499 ms | 511 ms | 421 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.42 ms | 5.43 ms | 5.46 ms | 5.40 ms | 121 |
| pick: hover while panning | gpu | 17.8 ms | 17.4 ms | 18.2 ms | 900 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 435 µs | 434 µs | 438 µs | 429 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 340 µs | 340 µs | 346 µs | 337 µs | 121 |
| compaction: compact() one-shot | gpu | 13.2 ms | 13.2 ms | 13.2 ms | 13.2 ms | 1 |
| init: create + ready | v3 | 3.71 s | 3.71 s | 3.71 s | 3.71 s | 1 |
| init: create + ready | gpu | 185 ms | 185 ms | 185 ms | 185 ms | 1 |
| init: create + ready (labels) | v3 | 4.81 s | 4.81 s | 4.81 s | 4.81 s | 1 |
| init: create + ready (labels) | gpu | 266 ms | 266 ms | 266 ms | 266 ms | 1 |
| init: columnar form (gpu-only) | gpu | 167 ms | 167 ms | 167 ms | 167 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 31.3 ms | 31.3 ms | 31.3 ms | 31.3 ms | 1 |
| export: png full (≤2048 px) | v3 | 4.33 s | 4.33 s | 4.33 s | 4.33 s | 1 |
| export: png full (≤2048 px) | gpu | 318 ms | 318 ms | 318 ms | 318 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 665 ms | 679 ms | 699 ms | 650 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.73 ms | 3.73 ms | 3.74 ms | 3.72 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 304 ms | 301 ms | 325 ms | 210 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.88 ms | 4.88 ms | 4.90 ms | 4.85 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 669 ms | 666 ms | 673 ms | 654 ms | 11 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 694 µs | 694 µs | 697 µs | 690 µs | 121 |
| frame: pan fit-all (labels) | v3 | 780 ms | 785 ms | 789 ms | 754 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.2 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 3.97 ms | 3.97 ms | 3.99 ms | 3.96 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 312 ms | 310 ms | 320 ms | 218 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.21 ms | 5.22 ms | 5.25 ms | 5.19 ms | 121 |
| pick: hover while panning | gpu | 17.3 ms | 16.8 ms | 18.1 ms | 100 µs | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 120 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 436 µs | 435 µs | 438 µs | 430 µs | 120 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 341 µs | 341 µs | 344 µs | 340 µs | 121 |
| compaction: compact() one-shot | gpu | 13.2 ms | 13.2 ms | 13.2 ms | 13.2 ms | 1 |
| init: create + ready | v3 | 3.42 s | 3.42 s | 3.42 s | 3.42 s | 1 |
| init: create + ready | gpu | 98.7 ms | 98.7 ms | 98.7 ms | 98.7 ms | 1 |
| init: create + ready (labels) | v3 | 4.05 s | 4.05 s | 4.05 s | 4.05 s | 1 |
| init: create + ready (labels) | gpu | 180 ms | 180 ms | 180 ms | 180 ms | 1 |
| init: columnar form (gpu-only) | gpu | 92.5 ms | 92.5 ms | 92.5 ms | 92.5 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 24.5 ms | 24.5 ms | 24.5 ms | 24.5 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.56 s | 1.56 s | 1.56 s | 1.56 s | 1 |
| export: png full (≤2048 px) | gpu | 260 ms | 260 ms | 260 ms | 260 ms | 1 |
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.
| group | bench | p50 | avg | p99 | min | samples |
|---|---|---|---|---|---|---|
| frame: pan fit-all | v3 | 648 ms | 665 ms | 660 ms | 643 ms | 12 |
| frame: pan fit-all | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| frame: pan fit-all | gpu (device) | 3.71 ms | 3.71 ms | 3.72 ms | 3.69 ms | 121 |
| frame: pan zoomed-in 20× | v3 | 306 ms | 298 ms | 312 ms | 211 ms | 12 |
| frame: pan zoomed-in 20× | gpu | 16.7 ms | 16.7 ms | 17.0 ms | 16.5 ms | 121 |
| frame: pan zoomed-in 20× | gpu (device) | 4.90 ms | 4.90 ms | 4.92 ms | 4.88 ms | 121 |
| frame: pan far-zoom ÷8 | v3 | 656 ms | 659 ms | 702 ms | 630 ms | 12 |
| frame: pan far-zoom ÷8 | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.4 ms | 121 |
| frame: pan far-zoom ÷8 | gpu (device) | 692 µs | 666 µs | 696 µs | 556 µs | 121 |
| frame: pan fit-all (labels) | v3 | 752 ms | 771 ms | 788 ms | 744 ms | 11 |
| frame: pan fit-all (labels) | gpu | 16.7 ms | 16.7 ms | 16.8 ms | 16.5 ms | 121 |
| frame: pan fit-all (labels) | gpu (device) | 3.98 ms | 3.98 ms | 4.00 ms | 3.96 ms | 121 |
| frame: pan zoomed-in 20× (labels) | v3 | 313 ms | 307 ms | 320 ms | 220 ms | 12 |
| frame: pan zoomed-in 20× (labels) | gpu | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 121 |
| frame: pan zoomed-in 20× (labels) | gpu (device) | 5.23 ms | 5.24 ms | 5.26 ms | 5.22 ms | 121 |
| pick: hover while panning | gpu | 17.2 ms | 17.3 ms | 17.7 ms | 5.10 ms | 80 |
| compaction: pan fit-all, 10% live | gpu (peak slots) | 16.7 ms | 16.7 ms | 16.8 ms | 16.4 ms | 121 |
| compaction: pan fit-all, 10% live | gpu (compacted) | 16.7 ms | 16.7 ms | 16.9 ms | 16.5 ms | 122 |
| compaction: pan fit-all, 10% live | gpu device (peak slots) | 436 µs | 435 µs | 438 µs | 430 µs | 121 |
| compaction: pan fit-all, 10% live | gpu device (compacted) | 342 µs | 342 µs | 343 µs | 340 µs | 122 |
| compaction: compact() one-shot | gpu | 9.20 ms | 9.20 ms | 9.20 ms | 9.20 ms | 1 |
| init: create + ready | v3 | 3.34 s | 3.34 s | 3.34 s | 3.34 s | 1 |
| init: create + ready | gpu | 97.4 ms | 97.4 ms | 97.4 ms | 97.4 ms | 1 |
| init: create + ready (labels) | v3 | 4.21 s | 4.21 s | 4.21 s | 4.21 s | 1 |
| init: create + ready (labels) | gpu | 162 ms | 162 ms | 162 ms | 162 ms | 1 |
| init: columnar form (gpu-only) | gpu | 81.0 ms | 81.0 ms | 81.0 ms | 81.0 ms | 1 |
| init: columnar form (gpu-only) | convert (toColumnarElements) | 22.6 ms | 22.6 ms | 22.6 ms | 22.6 ms | 1 |
| export: png full (≤2048 px) | v3 | 1.65 s | 1.65 s | 1.65 s | 1.65 s | 1 |
| export: png full (≤2048 px) | gpu | 320 ms | 320 ms | 320 ms | 320 ms | 1 |