P6.3: re-measure with GOSENTRY_TIMING instrumentation; correct figures
Warm-run average (runs 2-5 of 5) via env-gated phase timers in run.go: after Fyne app + window + tray 193 ms (was 285 ms on Fyne 2.6.3) after newMainView 249 ms after SetContent 252 ms after w.Show() [TOTAL] ~414 ms (was ~644 ms, -230 ms / -36%) Instrumentation reverted before this commit; source is clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+23
-10
@@ -50,17 +50,30 @@ 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). Measured
|
**Fyne upgraded from v2.6.3 → v2.7.4** as part of Phase 6 (P6.1).
|
||||||
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.
|
|
||||||
|
|
||||||
**Warm-run average: ~400 ms** (down from ~644 ms on Fyne 2.6.3).
|
### Method
|
||||||
|
|
||||||
|
Same `GOSENTRY_TIMING` env-gated phase timers as the 2026-06-22 baseline:
|
||||||
|
`fmt.Fprintf(os.Stderr, ...)` checkpoints added to `src/ui/run.go` across the
|
||||||
|
startup path, built with the CGO / MSYS2 UCRT64 toolchain and run 5×; run 1
|
||||||
|
(cold disk) is excluded. Timers were reverted before committing.
|
||||||
|
|
||||||
|
### Results (warm-run averages, runs 2–5)
|
||||||
|
|
||||||
|
| Phase (cumulative from start) | Fyne 2.6.3 | Fyne 2.7.4 | Δ |
|
||||||
|
|-------------------------------|------------|------------|---------|
|
||||||
|
| after single-instance check | ~0.5 ms | ~1 ms | — |
|
||||||
|
| after Fyne app + window + tray | ~285 ms | ~193 ms | −92 ms |
|
||||||
|
| after newMainView | ~328 ms | ~249 ms | −79 ms |
|
||||||
|
| after SetContent | ~353 ms | ~252 ms | −101 ms |
|
||||||
|
| **after w.Show() [TOTAL]** | **~644 ms**| **~414 ms**| **−230 ms** |
|
||||||
|
|
||||||
### Interpretation
|
### Interpretation
|
||||||
|
|
||||||
Fyne 2.7 recovered roughly **~240 ms** (~37%) of the `w.Show()` regression that
|
Fyne 2.7.4 is **~230 ms faster** (~36%) than Fyne 2.6.3 end-to-end. The gain is
|
||||||
arrived with the 2.6 threading model change. Fyne 2.7.0's "Massive performance
|
spread evenly: Fyne app + window + tray is 92 ms faster, `w.Show()` itself is
|
||||||
increases on rendering" and driver/threading optimisations are the likely cause.
|
~161 ms faster. This confirms Fyne 2.7.0's "Massive performance increases on
|
||||||
The upgrade is a net win: the `fyne.Do` threading API (required since 2.6) is
|
rendering" and driver/threading improvements are real and material for GoSentry.
|
||||||
retained, and the primary startup cost is substantially reduced.
|
The upgrade is a net win: `fyne.Do` threading (required since 2.6) is retained
|
||||||
|
and the startup cost is substantially reduced.
|
||||||
|
|||||||
Reference in New Issue
Block a user