P6.3: correct startup measurement — ~400 ms on Fyne 2.7.4
Previous commit used PowerShell process-launch timing instead of the History tab metric. Actual warm-run figure from the in-app "Window shown in …" event is ~400 ms, down from ~644 ms on Fyne 2.6.3 (~37% recovery). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-28
@@ -50,35 +50,17 @@ builds, so the comparison is fair.
|
|||||||
|
|
||||||
### Finding (2026-06-23, Fyne 2.7.4)
|
### Finding (2026-06-23, Fyne 2.7.4)
|
||||||
|
|
||||||
**Fyne upgraded from v2.6.3 → v2.7.4** as part of Phase 6 (P6.1). Cold-start
|
**Fyne upgraded from v2.6.3 → v2.7.4** as part of Phase 6 (P6.1). Measured
|
||||||
measurement via PowerShell `Stopwatch` (launch to window creation):
|
using the same method as the 2026-06-22 baseline: the History tab "Window shown
|
||||||
|
in …" event, which records the span from application entry to `w.Show()`
|
||||||
|
completion.
|
||||||
|
|
||||||
| Run | Time (ms) |
|
**Warm-run average: ~400 ms** (down from ~644 ms on Fyne 2.6.3).
|
||||||
|-----|-----------|
|
|
||||||
| Cold | 1286 |
|
|
||||||
| Warm 2 | 1213 |
|
|
||||||
| Warm 3 | 1217 |
|
|
||||||
| **Warm avg** | **~1215** |
|
|
||||||
|
|
||||||
### Interpretation
|
### Interpretation
|
||||||
|
|
||||||
The warm-run startup on Fyne 2.7.4 is approximately **~1215 ms** (launch to
|
Fyne 2.7 recovered roughly **~240 ms** (~37%) of the `w.Show()` regression that
|
||||||
window creation). This measurement includes GLFW window setup, driver
|
arrived with the 2.6 threading model change. Fyne 2.7.0's "Massive performance
|
||||||
initialization, and w.Show() completion. The previous measurement on Fyne 2.6.3
|
increases on rendering" and driver/threading optimisations are the likely cause.
|
||||||
was ~644 ms (via instrumentation); the difference reflects both:
|
The upgrade is a net win: the `fyne.Do` threading API (required since 2.6) is
|
||||||
- System load and timing-method variation between measurements (MSYS2 Bash
|
retained, and the primary startup cost is substantially reduced.
|
||||||
clock vs PowerShell Stopwatch; w.Show() completion vs window creation event)
|
|
||||||
- Possible additional overhead in this environment
|
|
||||||
|
|
||||||
The build compiles clean, all tests pass (go test -race), and Fyne 2.7
|
|
||||||
changelog reports "Massive performance increases on rendering" with no
|
|
||||||
breaking API changes. The tray and window interaction features (P6.2) depend
|
|
||||||
on 2.7's `SetSystemTrayWindow` API, which landed in v2.7.0 and is confirmed
|
|
||||||
working.
|
|
||||||
|
|
||||||
### Next check
|
|
||||||
|
|
||||||
If measurement precision becomes critical, reimplements the **`GOSENTRY_TIMING`
|
|
||||||
instrumentation pattern** from the previous finding (environment-gated phase
|
|
||||||
timers across `src/ui/run.go` and `src/ui/mainwindow.go`), which gives
|
|
||||||
microsecond-level breakdowns rather than coarse system-timer buckets.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user