TellMeWhen

TellMeWhen

24M Downloads

[Bug] TMW bug to refresh and update icons properly when out of memory 600mb+

cordankos opened this issue ยท 8 comments

commented

**What version of TellMeWhen are you using? **
8.6.0 (original, not alpha)

What steps will reproduce the problem?
I just have very big profile with over 800 custom icons with own lua conditions, I see that TMW totally stop working to track even buffs debuffs when out of memory over 600mb+

What do you expect to happen? What happens instead?
I want to see how icons will work properly but I should wait a little bit, I guess, when TMW clean little bit memory space to return back out from lag

Screenshots and Export Strings

Additional Info
Memory problem I am sure. With all addons I have 800mb+ memory usage, tried without another addons but still same problem.

commented

Nothing I can do - 600MB usage from TMW alone is insane. You've pushed the addon way past the limits of what its intended to do.

commented

When open tmw at arena

Message: attempt to yield across metamethod/C-call boundary
Time: Thu Mar 14 01:16:57 2019
Count: 1
Stack: attempt to yield across metamethod/C-call boundary
[C]: in function yield' Interface\AddOns\TellMeWhen\TellMeWhen.lua:2794: in function func'
Interface\AddOns\TellMeWhen\TellMeWhen.lua:2788: in function <Interface\AddOns\TellMeWhen\TellMeWhen.lua:2787>
Interface\AddOns\TellMeWhen\TellMeWhen.lua:823: in function Fire' Interface\AddOns\TellMeWhen\Components\Core\Icon.lua:1092: in function Setup'
Interface\AddOns\TellMeWhen\TellMeWhen.lua:3096: in function ?' ...ns\Bartender4\libs\AceConsole-3.0\AceConsole-3.0.lua:94: in function ?'
Interface\FrameXML\ChatFrame.lua:4721: in function ChatEdit_ParseText' Interface\FrameXML\ChatFrame.lua:4382: in function ChatEdit_SendText'
[string "TMW Snippet: Hybrid profile"]:293: in function <[string "TMW Snippet: Hybrid profile"]:284>
[string "TMW Snippet: Hybrid profile"]:337: in function func' Interface\AddOns\TellMeWhen\TellMeWhen.lua:2788: in function <Interface\AddOns\TellMeWhen\TellMeWhen.lua:2787> Interface\AddOns\TellMeWhen\TellMeWhen.lua:823: in function Fire'
...ace\AddOns\TellMeWhen\Options\TellMeWhen_Options.lua:320: in function <...ace\AddOns\TellMeWhen\Options\TellMeWhen_Options.lua:234>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...AddOns\Bartender4\libs\AceAddon-3.0\AceAddon-3.0.lua:529: in function InitializeAddon' ...AddOns\Bartender4\libs\AceAddon-3.0\AceAddon-3.0.lua:644: in function <...AddOns\Bartender4\libs\AceAddon-3.0\AceAddon-3.0.lua:636> [C]: in function resume'
Interface\AddOns\TellMeWhen\TellMeWhen.lua:2837: in function <Interface\AddOns\TellMeWhen\TellMeWhen.lua:2798>

Locals:

commented

Hello. Is here some limit by itself TMW because I have enough free RAM on my pc? Maybe I can do something to clean RAM by lua somehow?

commented

I see when RAM going to very high then game or TMW dump it back to normal, same as CPU Usage feature doing, same behaivor

commented

If you have any custom Lua scripts (which you do), then I can't help you unless you respond to your other ticket and give me your settings. I suspect your scripts are poorly written and have large memory leaks that are causing you to get up to 600MB.

commented

Is it possible make in CPU Usage tracking for lua snippets / functions? Or how will possible to track place with memory leak? I have everything working correctly exception when TMW going higher than 600mb. I have a lot of large tables and they took a lot of space, also I use usually icon condition type with own lua code which using global refresh update interval and I see every time how it going only increase memory with time and when it reached some high amount it going jump back to 200-400mb but when it stuck at high amount then TMW don't want update anything in icons

commented

Seems I found what causes this behavior. I use check buffs and many icons usually use repetitive checking. That is, I check the same buff in several icons. Each icon iterates over and over again all the auras, there is no saved value which can be taken from TMW - I didn't found it I guess because TMW uses real time check any aura for each icon every time. To prevent FPS from falling, I bring an aura that is not in the table to the table through the function and each function call returns the aura from the table if it is there, and also write to the table the time when the aura was updated or entered in the table. Each call calculates the time of the last call for this aura, and if it is less than 0.1 seconds, it returns the table, or updates the data about the aura and puts it into the table and then also returns the table. I attached parts of code and yeah it looks as heavy load but what we can do if tmw hasn't aura cache.
TMW issues.txt

commented

Also I use in lua conditions for each icon:
local ID = thisobj.Name
return
conditions and conditions or conditions

Might it be a trouble with "thisobj" getting Name if I use more than 500 icons with that :D ?