Advanced Technical Info - Hekili/hekili GitHub Wiki

[!NOTE]
This page hosts various explanations from the developer, Hekili, of some of the more advanced workings of the addon.


Performance based questions, in-depth explanations of some settings

Icons Displayed

The more icons that are displayed, the more time the addon spends generating recommendations to fill those icon slots. Conversely, if you want to save some CPU time, you can set your Primary and AOE displays to show fewer icons. If you are playing a specialization that involves a lot of RNG, you may find that only 1 or 2 icons are truly useful as your recommendations otherwise shift due to procs that cannot be anticipated in advance.

Displays Shown

For each display that is shown, the addon conducts a "reset" before generating recommendations. This means that having displays shown separately is slightly more expensive than displaying all recommendations in your Primary and AOE displays. However, it is usually worth the tradeoff to go ahead and have Interrupts shown separately if that is how you prefer the addon to function.

Performance Options

In your specialization's settings, there is a Performance tab that includes some settings that can help you to reduce the addon's impact on your CPU.

Set Update Period

If you check Set Update Period, you can set the Out-of-Combat Period and In-Combat Period values. This determines how frequently the addon recalculates its updates by default. If your In-Combat Period is set to 0.25, this means the addon will recalculate its recommendations 4 times per second, regardless of whether any events occurred that require an update (i.e., resources generated, buffs or debuffs procced). Setting this value higher means the addon is less likely to generate an unnecessary or premature update, which can save CPU time.

Note: The addon will always proceed to generate an update when there is a critical event that is likely to impact performance. That means this setting does not forbid the addon from updating more frequently than specific. The setting prevents the addon from conducting a routine, non-critical update more frequently than the time specified.

Set Update Time

If you check Set Update Time, you are able to limit the addon to calculating for a certain amount of time (in milliseconds) per frame. If your computer generally gets 60 frames per second, that means there is 16.667 milliseconds of processing time available to all addons every frame. If you want to guarantee that the addon will not impact your framerate, you can ensure that this value is set to less than your target framerate. However, the lower the setting, the more real time it can take to generate a set of recommendations.

Example: If it takes 12ms on average to generate a set of recommendations for your character, and you normally get 100 FPS, then the addon is likely to cause a small impact to your framerate when its updates delay the next frame by 2ms. If you set the Maximum Update Time to 6ms, the addon will do 6ms of work in one frame and 6ms of work in the next frame. This means that there should be no delayed frames, but that the addon's recommendations will be completed 4ms later.

If you reduce this value too low, you can cause the addon to take a very long time to finish calculating its recommendations. For example, if set to 1ms, then it would take the addon 12 frames at (with each frame taking 10ms of actual time) before its recommendations are complete. That means a 12ms set of recommendations will end up taking 120ms to calculate and display.