返回 DeepSeek-Reasonix
README.md
1 # Wails baseline metrics
2
3 Captured with `scripts/desktop-shell-metrics.sh` on the frozen baseline build
4 (`wails build -platform darwin/arm64`, Apple silicon, macOS 26.6), three runs,
5 fresh disposable data home each run, `REASONIX_DEV=1`. Medians below; the raw
6 runs are the JSON files beside this file. Electron builds are measured with the
7 same script and compared only against these figures.
8
9 | Metric | Median of 3 |
10 | --- | ---: |
11 | Go `startup` → lifecycle `ready` | 332 ms |
12 | Go `startup` → frontend `healthy` (React mounted, bridge heartbeat) | 3692 ms |
13 | Process-tree RSS, healthy + 2 s | 389 MiB |
14 | Process-tree RSS, healthy + 10 s | 385 MiB |
15 | Process-tree RSS, healthy + 30 s | 412 MiB |
16 | Processes in the tree | 4 (com.apple.WebKit.GPU, com.apple.WebKit.Networking, com.apple.WebKit.WebContent, reasonix-desktop) |
17 | SIGTERM honoured within 10 s | no (the Wails shell ignores SIGTERM; the script had to SIGKILL it) |
18
19 Run 1 includes first-launch work in a cold data home; runs 2 and 3 reuse the
20 warm OS file cache. Startup here starts at Go `main`, not at process creation,
21 and `healthy` is the point where the React app has rendered and the bridge
22 heartbeat succeeded. Interaction latency (session switch, stop feedback, input)
23 is captured separately by the frontend benchmarks under `desktop/frontend/bench`.
24
25 ## Electron, same script, same machine
26
27 Development build of the shell (`desktop/electron`, Electron 44.2.0) started
28 through `desktop/electron/scripts/metrics-launch.sh` with a Go service built
29 with `-X main.version=v0.0.0-electron`, three runs, fresh data home each run.
30 Startup starts at the Electron `main` process launch (Chromium initialisation
31 included), so "ready" is later than the Wails figure, which started at Go
32 `main`.
33
34 | Metric | Wails (median of 3) | Electron (median of 3) | Delta |
35 | --- | ---: | ---: | ---: |
36 | launch → Go lifecycle `ready` | 332 ms | 448 ms | +116 ms |
37 | launch → frontend `healthy` | 3692 ms | 3742 ms | +50 ms |
38 | Process-tree RSS, healthy + 2 s | 389 MiB | 665 MiB | +276 MiB |
39 | Process-tree RSS, healthy + 10 s | 385 MiB | 668 MiB | +283 MiB |
40 | Process-tree RSS, healthy + 30 s | 412 MiB | 697 MiB | +285 MiB |
41 | Processes in the tree | 4 | 5 (Electron, Electron Helper, Electron Helper (Renderer), reasonix-desktop-service-versioned) | |
42 | SIGTERM honoured within 10 s | no | yes (247 ms) | |
43
44 The fixed cost is the Chromium runtime and a second renderer-class process;
45 time to a healthy frontend is unchanged within noise. The unpackaged shell
46 loads the UI from `frontend/dist` through the `reasonix://app` handler, the
47 same path the packaged build uses. Idle growth between 2 s and 30 s is the
48 same order for both shells and is re-measured over an hour in the phase F
49 acceptance run.
50
51 The phase F acceptance run on the packaged macOS artifact (startup/idle,
52 1/5 browser tabs, 35-cycle tab/session leak loops, one-hour sustained use,
53 interaction p95 evidence and gaps) is recorded in `PHASE_F_ACCEPTANCE.md`
54 beside this file.
55
55 lines MARKDOWN