perf(media): herschrijf duplicaatverwijzingen in één deckpass #1052
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1052
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?
Context
countReferences vergelijkt iedere gevonden afbeeldingsreferentie met ieder doelpad. Bij toepassen loopt _applyDedupePlan vervolgens voor iedere te verwijderen kopie opnieuw door ieder deckbestand en leest/schrijft dat bestand opnieuw.
Impact
Veel duplicaten en veel decks vermenigvuldigen elkaar. In het maximum van 20000 bij 20000 ontstaan honderden miljoenen vergelijkingen of volledige decklezingen.
Relevante code
Acceptatie
Opgelost op main (PR #1093, merge in
78f2dc2d). countReferences gebruikt nu één canonieke lookup-map; het toepassen bouwt één replacement-map en leest/schrijft elk deck hooguit één keer via het nieuwe replaceReferencesMulti (relatieve POSIX-paden en atomair schrijven behouden) — O(decks + verwijzingen + doelen). Tests: veel-doelen-telling, één-pass-herschrijving, geen-schrijf-zonder-treffer en het volledige ontdubbelpad.