145 lines
6.2 KiB
Markdown
145 lines
6.2 KiB
Markdown
# Performance baseline
|
|
|
|
This page records one hardware-rendered Apple M5 comparison captured on 22
|
|
August 2026 in Chrome 150 at 1440 x 900. It is not a minimum hardware
|
|
specification and should not be used to predict performance on untested systems.
|
|
The original capture artifacts are not included here, so this page records
|
|
results rather than defining a runnable benchmark.
|
|
|
|
## Test context
|
|
|
|
The baseline was captured on 22 August 2026 with these conditions:
|
|
|
|
| Setting | Value |
|
|
| --- | --- |
|
|
| Renderer | Apple M5 Metal through the hardware ANGLE path |
|
|
| Browser | Chrome 150 in a fresh isolated profile |
|
|
| Viewport | 1440 x 900 at device pixel ratio 1 |
|
|
| Focus | Page foregrounded for controlled scenes |
|
|
| Scene sample | 5 seconds of scripted motion, then 5 seconds at rest |
|
|
| Startup | Browser cache disabled; three samples |
|
|
|
|
The capture covered three startup samples, 16 cold layer scenarios with 14
|
|
measurements, 23 controlled option and stress scenes, and five
|
|
hardware-rendered overlay scenes.
|
|
|
|
## Startup
|
|
|
|
| Sample | App ready | Initial settle | Load event | Motion / rest | Used JS heap |
|
|
| ---: | ---: | ---: | ---: | ---: | ---: |
|
|
| 1 | 784.980 ms | 2,035.082 ms | 439.5 ms | 60 / 60 FPS | 102.9 MiB |
|
|
| 2 | 604.849 ms | 1,855.836 ms | 442.4 ms | 60 / 60 FPS | 111.6 MiB |
|
|
| 3 | 558.527 ms | 1,809.592 ms | 438.8 ms | 60 / 60 FPS | 105.1 MiB |
|
|
| Median | 604.849 ms | 1,855.836 ms | 439.5 ms | 60 / 60 FPS | 105.1 MiB |
|
|
|
|
The initial-settle measurement is the more useful launch reference because it
|
|
includes the first visual and data settling window. All three samples reached
|
|
the display ceiling during both motion and rest.
|
|
|
|
## Cold layer activation
|
|
|
|
Cold activation was measured separately from warm option switching. Live object
|
|
counts are included so that future runs can compare source populations before
|
|
attributing a difference to the client.
|
|
|
|
| Layer | Activation | Source count | Motion / rest | Used JS heap |
|
|
| --- | ---: | ---: | ---: | ---: |
|
|
| CCTV city | 19,608.240 ms | 48 | 60 / 60 FPS | 192.7 MiB |
|
|
| Space Missions (report label: Rocket missions) | 3,581.066 ms | 26 | 60 / 60 FPS | 131.3 MiB |
|
|
| Radio | 3,458.709 ms | 750 | 60 / 60 FPS | 124.8 MiB |
|
|
| Bikeshare | 2,069.498 ms | 633 | 60 / 60 FPS | 157.4 MiB |
|
|
| Datacenters | 817.693 ms | 4,362 | 59.6 / 60 FPS | 328.2 MiB |
|
|
| Flights | 667.671 ms | 247 | 60 / 60 FPS | 118.4 MiB |
|
|
| Submarine cables | 614.727 ms | 2,629 | 60 / 60 FPS | 412.0 MiB |
|
|
| Military Flights | 557.113 ms | 68 | 60 / 60 FPS | 118.4 MiB |
|
|
|
|
CCTV had the largest cold activation cost in this capture. Submarine cables
|
|
used the most heap, followed by datacenters. Completed single-layer samples
|
|
generally reached 60 FPS, so activation time and heap separate these cases more
|
|
clearly than steady-state frame rate.
|
|
|
|
## Aircraft, detection, and Cockpit
|
|
|
|
| Scene | Motion / rest |
|
|
| --- | ---: |
|
|
| Idle globe | 60 / 60 FPS |
|
|
| Flights, 2D | 60 / 60 FPS |
|
|
| Flights, 3D proximity | 60 / 60 FPS |
|
|
| Flights, all 3D models | 60 / 60 FPS |
|
|
| Military Flights, all 3D models | 60 / 60 FPS |
|
|
| Detection at 25% | 39.3 / 41.1 FPS |
|
|
| Detection at 50% | 37.4 / 39.8 FPS |
|
|
| Detection at 100% | 34.4 / 35.5 FPS |
|
|
| Cockpit | 49.6 / 49.2 FPS |
|
|
|
|
The clean detection scenes processed 8,169 to 8,170 observations. Selected
|
|
labels rose from 14 at 25% density to 28 at 50% and 56 at 100%. The aircraft
|
|
rows came from an earlier loaded, foreground-controlled pass because the clean
|
|
rerun received no live aircraft rows.
|
|
|
|
## Visual styles and combined stress
|
|
|
|
| Scene | Motion / rest |
|
|
| --- | ---: |
|
|
| Normal | 60 / 60 FPS |
|
|
| CRT (report label: Retro) | 60 / 60 FPS |
|
|
| NVG (report label: Surveillance) | 60 / 60 FPS |
|
|
| FLIR (report label: Thermal) | 49 / 60 FPS |
|
|
| Anime | 60 / 59.8 FPS |
|
|
| Noir | 47 / 56.6 FPS |
|
|
| Snow | 42.3 / 45.8 FPS |
|
|
| Combined static | 57.6 / 60 FPS |
|
|
| Combined operational | 39.9 / 43.1 FPS |
|
|
|
|
The combined static scene rendered 11,575 objects, used 872.2 MiB of JavaScript
|
|
heap, and issued 48,665 text draws during motion and 54,106 at rest. The combined
|
|
operational sample contained 3,909 observations and two selected labels, but its
|
|
live aircraft and traffic rows were empty, so it remains a limited stress case.
|
|
|
|
Snow, Noir, dense detection, and text-heavy combined layers are the clearest
|
|
controlled comparison points for later optimization work.
|
|
|
|
## Keyed live sources
|
|
|
|
NASA FIRMS, AISStream, and TomTom were captured in a separate hardware-rendered
|
|
pass. The page was visible but was not the focused window, so these frame rates
|
|
must not be compared directly with the foreground-controlled scenes above.
|
|
|
|
| Source | Point-in-time population | Activation or coverage | Motion / rest |
|
|
| --- | ---: | --- | ---: |
|
|
| NASA FIRMS | 100,430 detections in 3,557 cells | 30.0 s activation | 32.1 / 55.2 FPS |
|
|
| AISStream | 12,000 vessels | 6.4 s activation | 22.1 / 29.8 FPS |
|
|
| TomTom Traffic | 4,222 road dots | 70% coverage, 2 decoded tiles | 45.0 / 51.7 FPS |
|
|
|
|
These populations change continuously. A future comparison must record the
|
|
live counts again and match the focus conditions.
|
|
|
|
## Controls for a future capture
|
|
|
|
Use the same controls before attributing a difference to the application:
|
|
|
|
1. Record the exact GPU renderer and reject software-rendered or unavailable GPU
|
|
strings.
|
|
2. Use a 1440 x 900 viewport at device pixel ratio 1 and keep the page focused.
|
|
3. Measure cache-disabled startup separately from cold layer activation and warm
|
|
option switching.
|
|
4. Repeat startup three times and compare medians.
|
|
5. Sample each option for 5 seconds in scripted motion and 5 seconds at rest.
|
|
6. Record live object counts before attributing a difference to the client.
|
|
7. Treat a live-source outage as missing coverage, not as evidence of low client
|
|
rendering cost.
|
|
|
|
## What is not established yet
|
|
|
|
- This report does not establish Windows performance.
|
|
- The report does not record machine memory capacity, so it cannot support a
|
|
minimum-memory recommendation.
|
|
- The report does not cover other GPU renderers or viewport configurations.
|
|
- Military Installations is outside this comparison because it requires close
|
|
camera context.
|
|
- The keyed pass has no controlled rerun suitable for comparison with the
|
|
option scenes.
|
|
|
|
Use this page as a regression baseline for one known hardware and browser
|
|
configuration, not as a compatibility guarantee.
|