[Performance] isEligible re-filtert/sortiert die ganze History pro Kandidat #9
Reference in New Issue
Block a user
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?
Schweregrad: LOW–MEDIUM
Dateien:
js/algorithm.js:49-57Problem: Pro Tag × pro Mitarbeiter wird
[...history, ...monthAssignments]neu erzeugt, gefiltert, gemappt und sortiert → O(Tage·Mitarbeiter·History). Bei ~20 MA/22 Tagen unkritisch, skaliert aber schlecht.Fix:
lastDate/Counts pro Mitarbeiter einmalig vor der Tagesschleife vorberechnen (Map).Behoben in
c076b5e:histCount-Map einmal pro Generierung vorberechnet —scoreCandidatemacht jetzt O(1)-Lookup statt History-Scan pro Kandidat. minGap ermittelt das letzte Datum per Single-Pass-Max statt Array-Spread +.sort(). Verhalten unverändert (alle Tests grün). Bewusst keine riskante inkrementelle Umstrukturierung des Scheduling-Kerns bei aktueller Skala.