LL perf (Core): LLEventTimer polled every frame through an allocating snapshot #374

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

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

LLEventTimer polled every frame through an allocating snapshot

  • Where: lleventtimer.cpp:57-71; llinstancetracker.h:386-415.
  • Cost: a vector of weak_ptr, then lock plus dynamic_pointer_cast per timer, including every stopped LLFlashTimer owned by flash-enabled buttons (llbutton.cpp:196), chiclets and conversation items. LLToast::updateClass does the same (lltoast.cpp:628).
  • Fix: min-heap of running timers. LL: believed rewritten in 2024 (LL::Timers); verify.
  • Confirmed. M.

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

From the LL-origin inefficiency audit (finding C6). File/line references are from commit 0229f8872c; re-locate them before working. **`LLEventTimer` polled every frame through an allocating snapshot** - **Where:** `lleventtimer.cpp:57-71`; `llinstancetracker.h:386-415`. - **Cost:** a vector of weak_ptr, then lock plus `dynamic_pointer_cast` per timer, including every stopped `LLFlashTimer` owned by flash-enabled buttons (`llbutton.cpp:196`), chiclets and conversation items. `LLToast::updateClass` does the same (`lltoast.cpp:628`). - **Fix:** min-heap of running timers. LL: believed rewritten in 2024 (`LL::Timers`); verify. - Confirmed. M. Verify the cost (profile or timer) before and after changing it.
sky_line added this to the Slipstream project 2026-10-06 15:04:14 +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
sky_line/Slipstream#374
No description provided.