LL perf (Objects/world): removeFromMap is linear find plus vector erase per killed object #316

Closed
opened 2026-10-04 14:09:18 +00:00 by sky_line · 0 comments
Owner

From the LL-origin inefficiency audit (finding O9). File/line references are from commit 0229f8872c; re-locate them before working.

removeFromMap is linear find plus vector erase per killed object

  • Where: llviewerobjectlist.h:313-320, called from cleanupReferences (.cpp:1425-1428).
  • Cost: O(K·N) on region drop or a KillObject storm.
  • Fix: stored index plus swap-and-pop (as removeFromActiveList does at :1585-1609).
  • Confirmed. S.

Verify the cost (profile or timer) before and after changing it.

From the LL-origin inefficiency audit (finding O9). File/line references are from commit 0229f8872c; re-locate them before working. **`removeFromMap` is linear find plus vector erase per killed object** - **Where:** `llviewerobjectlist.h:313-320`, called from `cleanupReferences` (`.cpp:1425-1428`). - **Cost:** O(K·N) on region drop or a KillObject storm. - **Fix:** stored index plus swap-and-pop (as `removeFromActiveList` does at `:1585-1609`). - Confirmed. S. Verify the cost (profile or timer) before and after changing it.
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
sky_line/Slipstream#316
No description provided.