Hekili Priority Helper

Hekili Priority Helper

44M Downloads

CPU usage very high (?!)

tflo opened this issue · 1 comments

commented

In one of the recent releases you mentioned “reduced memory usage”. Honestly, I don’t care that much about memory (I have plenty of it and RAM isn’t very expensive), but what concerns me is the CPU usage.

Here a screenshot from the Addon Usage addon:

Screen Shot 2020-04-24 at 19 29 28

This was an open world session with fighting and also other stuff, like vendoring, flying around, etc. And this is no exception; every time when I observe CPU usage, Hekili comes out at top by a very huge margin. (For comparison, Hero Rotation uses a fraction of what uses Hekili.)

I don’t know if this is a misreading by the Addon Usage addon, but I fear it is not.

What is the reason for this, and can anything be improved in that respect?

I guess, the issue is the Hekili language. If this is true, wouldn’t it be possible to feed the APLs directly as Lua?

Thanks for the great addon!

– Tom

commented

So, there are several pieces to address here, depending on what kind of depth we want to go into.

  1. Having your Issue Reporting information helps, as different spec features or complex priorities require more CPU time. If you're playing a Fire Mage, for instance, I've improved that a LOT recently, but it's still a very dense priority especially once you get into the maintain phase waiting for Combustion to come back. There's a LOT to rule out before you decide to just spam Fireball. If I can find a way to short-circuit that priority more effectively, I will do so, but I haven't yet.

  2. Most of the addons you're listing there aren't doing anything, basically ever, while you're out and about doing WQs or raiding. TellMeWhen could be, but it's likely calculating very little.

It's also worth noting that while you're profiling CPU usage, literally all of your addons will be running slower while the profile data is collected. The ratio of CPU usage in your screenshot probably holds up, but actual usage without profiling might be 20-40% lower.

  1. The SimulationCraft syntax isn't particularly impactful for performance. All of that is translated once and then used in Lua. Moving away from SimC syntax wouldn't have a gain and would be against the core design of the addon -- that you can reasonably compare yourself to SimulationCraft performance and behavior.

  2. This addon is doing more in combat than literally anything else you're using there. Hero Rotation may be more efficient in general and may be doing less (that's not a criticism; they have different design goals than I do). My addon forecasts resources, cast completion, impacts of spells, so that it can make recommendations further out in time. Maybe HR does that now and does it more efficiently. If you need/want less of it (maybe 2 icons instead of 4, or just 1 icon), it requires less time to calculate that. You can find related features in /hekili > Your Spec > Performance.

a. Throttle Updates -- you can limit how frequently the addon is allowed to update.

b. Throttle Time -- you can limit how much time the addon is allowed to spend generating secondary recommendations. This can result in fewer recommendations shown, but you'll always get at least 1.

  1. In terms of optimization, there are really two things that can be done: (1) get the addon to do what it does faster, or (2) get the addon to do it less often. Most of my recent work has been around doing what it does faster, and it may be time to look again at whether it's updating its recommendations too frequently.

  2. There could be errors that are uncaught at the moment, or calculations that aren't optimized. I don't have anything identified, though. I'll say that I'm pretty happy with the current beta branch and plan to push it to live. I don't know which version you're using.

If you have any specific concerns regarding a particular class/spec, go ahead and open a ticket with your Issue Reporting information and a Snapshot when you're seeing a problem.