[Prestaties][P1] Markdown-bron: schrijftips-scan over het hele deck bij elke toetsaanslag (18/37/75 ms bij 150/300/600 dia's) #2681
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2681
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptoom
Typen in de Markdown-bron van een groot deck (Bron-modus, bereik "hele deck") hapert. Bij 150 dia's kost elke toetsaanslag al meer dan een frame.
Gemeten
Losse AOT-meting (
dart compile exe, Apple Silicon) vaninspectMarkdownWritingop een synthetisch deck van 6 bullets per dia, gemiddeld over 20 runs:inspectMarkdownWritingreparseter vergelijkingDe RegExp-constructies naar top-level halen scheelt minder dan 5 % (71 ms bij 600 dia's): de VM cachet ze al. De kosten zitten in de scan zelf, die lineair over de hele tekst loopt.
Oorzaak
_onDocumentChanged(lib/widgets/editors/markdown_deck_editor.dart:250-266) draait bij elke wijziginginspectMarkdownWriting(_ctrl.text)(lib/models/markdown_writing_suggestion.dart:18) over de volledige bron. De uitkomst voedt alleen een teller in de balk (r. 949) en de dialoog Schrijftips. De validatie ernaast is wél gedebounced (350 ms, r. 281-285).Voorgestelde oplossing
_scheduleValidation). De dialoog rekent bij het openen vers.MarkdownSourceDocument, zodat alleen gewijzigde blokken opnieuw geïnspecteerd worden.'Het woord “…” staat twee keer achter elkaar.'en de twee andere, r. 45, 57, 66). ViaText(suggestion.message)(markdown_deck_editor.dart:610) verschijnen ze zo in alle UI-talen. Maak erkindplus argumenten van en vertaal bij de weergave metl10n.d.Wat overeind moet blijven
Toets
Een per-toetsaanslag-toets naast de schaalpoorten uit #2636: 600 dia's en één aanslag geeft geen aanroep van
inspectMarkdownWritingbinnen het debounce-venster (teller-naad). Daarna verschijnt de teller.Gevonden en gemeten tijdens de vervolginspectie van 31-10-2026. Niet gedekt door EPIC #2637; #2562 ging over de regelnummers.
Opgepakt. Tak: fix/vervolginspectie-3110. Verwachte reikwijdte: de bestanden die in de oorzaak van dit issue staan, plus een regressietest.
Opgepakt. Tak: fix/vervolginspectie-3110. Verwachte reikwijdte: lib/widgets/editors/markdown_deck_editor.dart, lib/models/markdown_writing_suggestion.dart, vertalingen.
Staat op main in
a6b4dc066(5f16e8917). Schrijftips wachten dezelfde adempauze als de syntaxcontrole. De meldingen lopen via de vertaling.Opgelost op main in
a6b4dc066. De zin „elke toetsaanslag kost al meer dan een frame“ is gedekt doordat de schrijftips in dezelfde adempauze als de validatie lopen (lib/widgets/editors/markdown_deck_editor.dart) en de zinnen via l10n.d gaan. De toets met 600 dia's en één aanslag staat in test/markdown_deck_editor_test.dart.