Measure re-anchor reports that carry their changes

Aperta
#593 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
performance

Direzione di ricerca

This is a measurement task tied to re-anchor reports carrying passChanges after #589, so start by reading the code that builds and sends the report on onAnalysisChanged. Measure the largest report for a linked book the text lacks and for a Scripture edit to the most heavily linked book, recording bytes and view apply time. Done when the sizes are recorded here and either no cap is needed or a cap with a test is in place.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Follows #589. Blocks 5d (#459), which lets drafts over 100 MiB open.

Why

Since #589, a re-anchor report on onAnalysisChanged carries passChanges, the change sets the passes applied, so the view can update its copy without a whole fetch. Two cases can make a report large:

  • A pass for a book the text lacks marks every link into that book stale, so its change set carries all of that book's links.
  • A report after a Scripture edit bundles every pass the edit caused.

The report is a network event, which every subscriber receives. Until 5d, a draft that opens on the host path already fits under core's 100 MiB message cap, because getFullAnalysis sends it whole, so a report can't exceed the cap. Once 5d removes getFullAnalysis, larger drafts open, and a report over the cap closes the extension host's socket and reloads every extension.

Scope

  • At the large-loadable tier, measure the largest report for:
    • a linked book the text lacks;
    • a Scripture edit to the most heavily linked book.
  • Record its size in bytes and how long the view takes to apply it.
  • If a report is large enough to matter, cap passChanges. Above the cap the report leaves them out, and the view fetches the whole draft, as it already does for any report it hears without them.

Done when

  • The sizes are recorded here.
  • Either they're small enough to leave as they are, or a cap is in place with a test.

Drafted by Claude Opus 5.5 (Claude Code).

Lingua principale
TypeScript
Stelle
2
Fork
0
Merge medio
1g 4h
PR unite (30g)
99

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sillsdev/interlinearizer-extension

Tutte le issue di sillsdev/interlinearizer-extension

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.