Hekili Priority Helper

Hekili Priority Helper

44M Downloads

Fire Mage performance revisited

Mura1108 opened this issue ยท 6 comments

commented

1.  The information from the Issue Reporting tab ( /hekili > Issue Reporting ).  This provides your talent and gear information.  You can paste it to pastebin.com and provide a link here.

build: v8.3.0-04-21
level: 120 (120)
class: MAGE
spec: fire

talents: flame_on
frenetic_speed
living_bomb
meteor
rune_of_power
searing_touch
shimmer

azerite: azerite_empowered = 3
blaster_master = 3
eldritch_warding = 1
gemhide = 1
gutripper = 2
heed_my_call = 1
quick_thinking = 1
trailing_embers = 1
undulating_tides = 1
wildfire = 1

essences: [memory_of_lucid_dreams] = 3, breath_of_the_dying = 1, essence_of_the_focusing_iris = 3

sets/legendaries/artifacts: none

gear: anuazshara_staff_of_the_eternal = 1
azsharas_font_of_power = 1
banded_seaweave_breeches = 1
drape_of_the_hatcher = 1
exquisitely_aerodynamic_shoulderpads = 1
heart_of_azeroth = 1
highborne_compendium_of_storms = 1
incubators_bellcap = 1
knight_captains_waistcord = 1
loa_betrayers_vestments = 1
mine_rats_handwarmers = 1
ritual_binders_ring = 1
sandswept_sandals = 1
thornwoven_band = 1
vile_manipulators_wristwraps = 1

corruptions: void_ritual = 1

itemIDs: 158075, 159231, 159232, 159233, 159259, 159274, 159459, 162548, 168275, 168339, 168604, 168739, 169314, 169328, 174953

settings: aoe = 3
buffPadding = 0
custom1Name = Custom 1
custom2Name = Custom 2
cycle = false
cycle_min = 6
damage = true
damageDots = false
damageExpiration = 6
damageRange = 0
debuffPadding = 0
enabled = true
gcdSync = false
maxRefresh = 10
maxTime = 33
nameplateRange = 8
nameplates = false
package = Fire
potion = potion_of_unbridled_fury
potionsReset = 20180919.1
throttleRefresh = false
throttleTime = false
no_scorch_blast = true
prevent_hardcasts = false
pyroblast_pull = false
reserve_runes = 1
save_2_runes = true

toggles: cooldowns = true
custom1 = false
custom2 = false
defensives = false
essences = true
interrupts = false
mode = automatic
potions = false

When I play fire mage - even though the linked one is ''undergeared'' - My game starts stuttering and dropping frames like no tomorrow.

I have disabled all other addons and tried with solely Hekili on - what seems to be the issue is that your addon jumps up in memory usage to very high levels, I have never seen it go over 100mb on any other class even in high M+ content on classes like unholy dk or Havoc DH.

When I swap over to Frost or Arcane there is no issue anymore. I have no idea what it is causing but is there a trigger in the fire spec that makes Hekili go haywire?

regards
WoWScrnShot_042020_204210

commented

Memory usage isn't that important, though that growth is annoying -- WoW's garbage collector doesn't free memory until it needs to do so and can do so without impacting performance. I'll look to see what might be impacting that growth for Fire.

For in-combat performance, it would be more useful to get a snapshot so I can see the decision-making and how long it took. The instructions for that were also in the instructions for the ticket.

commented
commented

Alright, so I investigated and rewrote the caching related to variables and priority branching to reduce that memory usage that grew quickly out of control. I also set up the Fire priority to do less unnecessary branching (using the strict modifier on some run_action_list or call_action_list priorities).

Fire is still going to use more CPU than other priorities, because if you have a Fire Blast available, it has to check to see if you can Fire Blast during a cast or before an impact before it checks other options.

But this should be a bit better than before.

Other considerations that can help:

  1. Each displayed icon costs more CPU to predict. You can show fewer icons via /hekili > Displays > Primary > Icons Shown.

  2. You can throttle the number of allowed updates per second in /hekili > Fire > Performance.

  3. You can cap the amount of CPU time it can use to make recommendations (same location as #2). If you throttle the time allowed for predictions, then if the addon crosses that threshold on the first or second recommendation, it will stop and won't calculate the second or third.

commented

TODO:

  1. Get Fire Blast working more often during Scorch (i.e., when moving).
  2. Use Hot Streak Pyros while moving (i.e., between Scorches).
commented

Even with the performance changes it's still pretty choppy for me.

commented

I don't have a new answer for this aside from the options noted a couple posts back.

If you have data (snapshots) that you think would help diagnose a problem, you can provide that.

I'll be investigating again whether I can short-circuit the priority more quickly; it is using the most CPU when it gets down to your filler Fireballs more than anything else. That's because of the way the priority is structured.