[1.18.2 Forge Bug]: Severe memory leak due to constant initialisation of classes.
Whanos opened this issue · 2 comments
■ Your Discord ID
protocol#6464
■ Dragon Survival version
DragonSurvival-1.18.2-1.5.42.jar
■ Single game or server?
Forge Server or host
■ Do you delete old configurations and check the Wiki before writing a bug report?
Nope (Default)
■ Do you play pure MC + DS and Geckolib or do you have some kind of modpack?
I have other mods
■ Describe the bug
The mod has a serious memory leak in the code - causing the mod to allocate many gigabytes of data, only ever being cleared by the GC. This is due to hundreds of thousands of copies of classes being instantiated.
The bug is due to this class being instantiated hundreds of thousands of times.
Said class is instantiated by this code seemingly many times every single tick , meaning that you are instantiating an insane amount of the same class.
Ultimately, the issue is seemingly caused by this class.
I strongly suggest looking at this section of code and caching this data, or at least severely reduce the amount of times you instantiate said data.
It appears one of your developers possibly knew about the severity of this issue four months ago.
This causes serious repeating performance issues on servers with limited RAM, as combined the mod can use almost 4GB of RAM at its peak - before the unused classes get wiped out of the heap by the GC.
■ To Reproduce
- Install the mod onto a forge server (I have not tested on single-player).
- Become a dragon.
- Profile the game after enabling JMX. using VisualVM or similar.
- Watch your memory allocation graph go wild.
■ Expected behavior
It not leaking memory.
■ Crash Report
No response
Thank you very much for your issue, I will try to solve this problem as soon as possible.