Skip to content
This repository was archived by the owner on Jan 21, 2024. It is now read-only.
This repository was archived by the owner on Jan 21, 2024. It is now read-only.

CPU Spike causing noticable stutter upon pressing modifier keys #497

Open

Description

@Ketrel

Issue description:

When pressing a modifier key (shift/ctrl/alt) there is a noticable stutter.
It looks like it's a result of binding UpdateAll to the ACTIONBAR_SLOT_CHANGED event

How to reproduce:

  1. Have a lot of buttons
  2. Press modifier key
  3. Experience very noticable stutter

Technical info:

  • Addon Version: 1d7813b
  • Client: Retail
  • Client Patch Version: 10.0.2

Additional context:

I've definitely traced it to that event triggering UpdateAll
I'm trying to narrow down what's causing it, and see if there's anything that could be added to avoid or reduce this stutter.
(Commenting out the event binding for that one immediately resolves the stutter, but I'm not sure what might be missed by not reacting to this specific event).

For reference, I added a counter, that ONLY fires when it's ACTIONBAR_SLOT_CHANGED calls UpdateAll, and prints a cumulative total and then tapped shift once. UpdateAll fired 6160 times JUST for the ACTIONBAR_SLOT_CHANGED event.

This particular toon has a total of 356 buttons across all bars, many of which are hidden without specific keypresses, or only show on page 2 or similiar. (This figure was derived by counting the instances of "Macro_text" in the saved variable file in the block for the toon I'm testing with.

Activity

  1. ylixir commented on Dec 23, 2022

    @ylixir
    Collaborator

    is this a regression, or has it been like this for a while?

  2. Ketrel commented on Dec 23, 2022

    @Ketrel
    Author

    Nope, not a regression.
    I have been trying to track this down for a while and finally isolated which event binding was causing it.
    (This was present at least during all of SL)

  3. BujuArena commented on Dec 23, 2022

    @BujuArena

    Nope, not a regression.
    I have been trying to track this down for a while and finally isolated which event binding was causing it.
    (This was present at least during all of SL)

    Beautiful. I did the same with #156 and finally fixed it with #158 . However, it seems that was reverted, so a performance issue with lots of buttons may still be lurking. I'm not sure my code which makes the buttons only register the necessary events, or similar code, is present.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions