Neuron icon indicating copy to clipboard operation
Neuron copied to clipboard

CPU Spike causing noticable stutter upon pressing modifier keys

Open Ketrel opened this issue 3 years ago • 3 comments

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.

Ketrel avatar Dec 22 '22 22:12 Ketrel

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

ylixir avatar Dec 23 '22 15:12 ylixir

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)

Ketrel avatar Dec 23 '22 15:12 Ketrel

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 https://github.com/brittyazel/Neuron/issues/156 and finally fixed it with https://github.com/brittyazel/Neuron/pull/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.

AlexFolland avatar Dec 23 '22 21:12 AlexFolland