perf: optimize spell and unit ID lookups with caching and fix range cache memory leaks

This commit is contained in:
Bluewhale1337
2026-10-02 12:17:29 +02:00
parent f4ba0d983d
commit 032c7571af
6 changed files with 64 additions and 43 deletions
+9 -5
View File
@@ -15,7 +15,11 @@ local _lastFrameTime = 0
function HealBot_Range_Check(unit, range)
local currentTime = GetTime()
if _lastFrameTime ~= currentTime then
for k in pairs(_rangeCache) do _rangeCache[k] = nil end
for r, cacheTable in pairs(_rangeCache) do
for u in pairs(cacheTable) do
cacheTable[u] = nil
end
end
_lastFrameTime = currentTime
end
@@ -24,9 +28,9 @@ function HealBot_Range_Check(unit, range)
range = 40;
end
local cacheKey = unit .. "_" .. range
if _rangeCache[cacheKey] ~= nil then
return _rangeCache[cacheKey]
_rangeCache[range] = _rangeCache[range] or {}
if _rangeCache[range][unit] ~= nil then
return _rangeCache[range][unit]
end
if ( unit == "player" ) then
@@ -72,6 +76,6 @@ function HealBot_Range_Check(unit, range)
end
end
_rangeCache[cacheKey] = return_val
_rangeCache[range][unit] = return_val
return return_val;
end