Coder Social home page Coder Social logo

Memory Leak about decursive HOT 7 OPEN

zaphon avatar zaphon commented on August 24, 2024
Memory Leak

from decursive.

Comments (7)

2072 avatar 2072 commented on August 24, 2024

Thanks for reporting this, can you give me more details on the conditions for this memory leak to occur, is it constant or only in certain conditions? I suppose you are using the latest version?
What version of WoW are you using? (classic, wrath or retail)

Can you try with Decursive alone? or reinstall Decursive with libraries installed separately? (you will need to use the -nolib files provided here https://github.com/2072/Decursive/releases and install the libraries separately in the Curse Client - right click on Decursive -> install settings -> install libraries separately) because this can be caused by another add-on using one of Decursive's shared libraries...

Note that I could not reproduce this issue.

from decursive.

zaphon avatar zaphon commented on August 24, 2024

Oops, yeah I can provide the details.

This was on retail, I was in a 40 man raid (doing the Superbloom event), and I am on the latest version. I will attempt to isolate this issue further as suggested (no other addons, and using the -nolib version). I will report back my findings after I do so. I will have to wait until the day time (US) as right now none of the events will get anywhere near a 40 man group.

from decursive.

2072 avatar 2072 commented on August 24, 2024

I think I found the problem, unfortunately it's on Blizzard's side. It has to do with their new C_UnitAuras APIs which are creating garbage internally every time they return a buff and debuff data....
The new API should allow me to limit the number of calls and useless data return (which should limit the leaking only when a unit has active buff/debuff of interest) but it's a Blizzard issue they have to fix on their side...

For now what you can do to limit the damage when there is no buff/debuff on units is to disable the "Show Stealth Status" in the Micro Unit Frame option panel. This will stop Decursive scanning for stealth buffs.

from decursive.

zaphon avatar zaphon commented on August 24, 2024

Fun, gotta love these patches / improvements. :-)

I did actually manage to get to test it with no other addons than Decursive (I see the same issue, but it goes from like 8MB to 30MB before it get's GC'd), same with no other addons with the nolibs version (similar to above, still see the climb, but get's GC'd even earlier), and finally with all my AddOns and nolibs version of Decursive (I already have every single lib dependency via other AddOns), and it was similar to the original. I'll look at the option above, but I honestly don't think GC is the issue I'm running into. I have another addon doing something it's not supposed to, just haven't narrowed it down yet (when I found the issue I reported, I disabled decursive all together to try and isolate the issue, there was no difference in behavior)

from decursive.

2072 avatar 2072 commented on August 24, 2024

The memory garbage leak you see is definitely caused by C_UnitAuras.GetDebuffData* functions. These return a new Lua table each time and this is this table that is creating the garbage data you see. Decursive will call these functions once every second for each debuff on each unit, and each buff (if you have the stealth detection option enabled)... So the more units Decursive manages and the more these units have buffs/debuffs the more garbage data will be generated...
I'm not sure why Decursive needs to scan all the units every second (I don't remember why I can't just rely on aura events) but I remember there was a use case... (there is even internal debug in Decursive to detect when the every second scan sees something that was not reported by an aura event)

from decursive.

2072 avatar 2072 commented on August 24, 2024

I've released a new alpha version to fix the most serious memory leak:

https://www.wowace.com/projects/decursive/files

can you test it and tell me the result?

from decursive.

zaphon avatar zaphon commented on August 24, 2024

Thanks for this, I'm traveling for work but will be back tomorrow and will test it ASAP.

from decursive.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.