Documentweergave parseert de hele bron opnieuw bij elke rebuild #2711

Closed
opened 2026-11-02 21:52:05 +00:00 by brenno · 0 comments
Owner

Probleem

DocumentMarkdownView.build voert documentFootnotes(markdown) en _parse(markdown) bij elke widget-opbouw uit. In de Bron-stand van de documenteditor herbouwt de live-weergave bij elke bron-flush én bij caret-gedreven rebuilds — elke rebuild parset het hele document opnieuw en bouwt de hele blokboom. computeDocumentStats in de informatiestrook heeft hetzelfde patroon (~4 ms per rebuild op 54 KB).

Gemeten op het FMEA-document: parse+footnotes ~2–5 ms per build; stats ~3,7 ms per build; bij doortypen tientallen rebuilds per seconde.

Oplossing

Kleine memo-cache (LRU, enkele items) op de pure parse/stats-functies, gesleuteld op de bronstring: rebuilds zonder tekstwijziging (caret, thema, instellingen) kosten dan niets.

## Probleem `DocumentMarkdownView.build` voert `documentFootnotes(markdown)` en `_parse(markdown)` bij elke widget-opbouw uit. In de Bron-stand van de documenteditor herbouwt de live-weergave bij elke bron-flush én bij caret-gedreven rebuilds — elke rebuild parset het hele document opnieuw en bouwt de hele blokboom. `computeDocumentStats` in de informatiestrook heeft hetzelfde patroon (~4 ms per rebuild op 54 KB). Gemeten op het FMEA-document: parse+footnotes ~2–5 ms per build; stats ~3,7 ms per build; bij doortypen tientallen rebuilds per seconde. ## Oplossing Kleine memo-cache (LRU, enkele items) op de pure parse/stats-functies, gesleuteld op de bronstring: rebuilds zonder tekstwijziging (caret, thema, instellingen) kosten dan niets.
brenno 2026-11-02 22:05:47 +00:00
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#2711
No description provided.