jordonwow / bigdebuffs

https://www.curseforge.com/wow/addons/bigdebuffs
47 stars 87 forks source link

Utilize new optimized APIs #800

Open rtroberts opened 1 month ago

rtroberts commented 1 month ago

BigDebuffs continues to operate via old aura update methods, which are expensive and unnecessary.

Blizzard implemented optimized APIs to interact with changed auras only over two years ago: https://us.forums.blizzard.com/en/wow/t/new-unitaura-processing-optimizations/1205007

It is no longer necessary to iterate through all auras for every UNIT_AURA event. The API provides an additional parameter, which has an attribute containing the changed auras ONLY. Additionally, an extra helper function (AuraUtil.ShouldSkipAuraUpdate()) can be used to return early if no relevant auras are changed.

Another helpful link: https://wowpedia.fandom.com/wiki/UNIT_AURA

rtroberts commented 1 month ago

I'll try my hand at producing a PR to implement this, but it may take me quite a while to work through LUA dev.

hqrd commented 1 month ago

Maybe this could fix the huge CPU usage it has, espacially the more unit it has to track ?

Like reported in #599 #500 #495 #434 #410 #321 #89 #651

ccowell93 commented 1 week ago

Bumping this issue, I have to disable this addon for the time being

rtroberts commented 2 days ago

Maybe this could fix the huge CPU usage it has, espacially the more unit it has to track ?

Like reported in #599 #500 #495 #434 #410 #321 #89 #651

I think that's likely true.

I haven't had the capacity to work on this myself recently. I hope to find some time over the holidays but we will see.