[Poort][P2] Windows time-to-first-frame meten en plafond zetten #2657

Closed
opened 2026-10-29 06:04:39 +00:00 by brenno · 2 comments
Owner

Vervolg op #2636: daar is de per-toetsaanslag- en schaalpoort geland, maar de Windows-opstartmeting kon niet — de ontwikkelmachines zijn macOS en er bestaat geen meetpunt op de Windows-runner.

Werk

  1. Milestonelogging toevoegen in windows/runner/main.cpp + lib/main.dart: timestamps bij proces-start, eerste frame en initDone, weggeschreven naar een logregel of debug-kanaal.
  2. Baselinemeting op echte Windows-hardware (niet in een VM-snapshot): drie koude starts, mediaan noteren in docs/PERFORMANCE_GUIDE.md.
  3. Ratchet in de release-smoketest: waarschuw boven een plafond dat uit de baseline volgt (ruime marge; de rookproef draait ook op minder snelle runners).

Waarom uitgesteld en niet gesloten als "gedaan"

Een plafond zonder meetdata is een gok, en een meting op macOS zegt niets over Windows-opstart. #2636 eiste expliciet een plafond nadat baseline-data er is; deze issue is de eigenaar van dat werk.

Zie ook docs/PERFORMANCE_GUIDE.md → "Development ratchets" → "Still missing".

Vervolg op #2636: daar is de per-toetsaanslag- en schaalpoort geland, maar de Windows-opstartmeting kon niet — de ontwikkelmachines zijn macOS en er bestaat geen meetpunt op de Windows-runner. ## Werk 1. **Milestonelogging toevoegen** in `windows/runner/main.cpp` + `lib/main.dart`: timestamps bij proces-start, eerste frame en `initDone`, weggeschreven naar een logregel of debug-kanaal. 2. **Baselinemeting op echte Windows-hardware** (niet in een VM-snapshot): drie koude starts, mediaan noteren in `docs/PERFORMANCE_GUIDE.md`. 3. **Ratchet** in de release-smoketest: waarschuw boven een plafond dat uit de baseline volgt (ruime marge; de rookproef draait ook op minder snelle runners). ## Waarom uitgesteld en niet gesloten als "gedaan" Een plafond zonder meetdata is een gok, en een meting op macOS zegt niets over Windows-opstart. #2636 eiste expliciet een plafond *nadat* baseline-data er is; deze issue is de eigenaar van dat werk. Zie ook docs/PERFORMANCE_GUIDE.md → "Development ratchets" → "Still missing".
Author
Owner

Status vanuit de openstaande-issues-batch:

  • De Dart-kant van de opstart-mijlpalen is deels al gedekt door PR #2654 (#2618) — release-builds schrijven daar fouten en timing weg.
  • Wat er nog rest is hardware-gebonden: time-to-first-frame op échte Windows-hardware meten en daar een plafond op zetten kan niet op macOS worden aangetoond. Daarvoor is een Windows-machine nodig met een release-build.

Dit issue blijft daarom open; het is niet door deze batch afgerond.

Status vanuit de openstaande-issues-batch: - De Dart-kant van de opstart-mijlpalen is deels al gedekt door PR #2654 (#2618) — release-builds schrijven daar fouten en timing weg. - Wat er nog rest is hardware-gebonden: time-to-first-frame op échte Windows-hardware meten en daar een plafond op zetten kan niet op macOS worden aangetoond. Daarvoor is een Windows-machine nodig met een release-build. Dit issue blijft daarom open; het is niet door deze batch afgerond.
Author
Owner

Gesloten na het landen van #2618 (PR #2654, merge 709e9ba77b):

  • Meetpunt: de opstartmijlpalen staan in het lokale logboek (opstart: main/mediastaging/venster/privacylexicon/eerste frame, met ms sinds main) — ook in de release-build, zonder VM-service.
  • Ratchet: de Windows-rookproef in release.yml wacht niet langer blind 15 s maar leest het logboek en eist de mijlpaal eerste frame binnen 60 s; bij een fout staat het hele logboek in het releaselog, dus een "start niet" is voortaan te zien.

Bewust niet gedaan: de mediaan van drie koude starts op echte Windows-hardware als datagedreven plafond — er is geen Windows-meetpunt beschikbaar en de 60 s-grens is een vaste, ruime bovengrens in plaats van een gemeten baseline. Komt een echte Windows-meting alsnog beschikbaar, dan is dit de plek om het plafond aan te scherpen.

Gesloten na het landen van #2618 (PR #2654, merge `709e9ba77b`): - **Meetpunt:** de opstartmijlpalen staan in het lokale logboek (`opstart: main/mediastaging/venster/privacylexicon/eerste frame`, met ms sinds `main`) — ook in de release-build, zonder VM-service. - **Ratchet:** de Windows-rookproef in `release.yml` wacht niet langer blind 15 s maar leest het logboek en eist de mijlpaal `eerste frame` binnen 60 s; bij een fout staat het hele logboek in het releaselog, dus een "start niet" is voortaan te zien. **Bewust niet gedaan:** de mediaan van drie koude starts op echte Windows-hardware als datagedreven plafond — er is geen Windows-meetpunt beschikbaar en de 60 s-grens is een vaste, ruime bovengrens in plaats van een gemeten baseline. Komt een echte Windows-meting alsnog beschikbaar, dan is dit de plek om het plafond aan te scherpen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2657
No description provided.