EnderIO icon indicating copy to clipboard operation
EnderIO copied to clipboard

Reduce Memory pressure of UpgradePath

Open ichttt opened this issue 5 years ago • 0 comments

Hi there, I did some memory analysis on large modpacks, trying to reduce the memory pressure. I noticed that the HashMap in your DarkSteelUpgradeRecipeCategory is taking up around 150MB of heap space. If you look at the objects inside the map that take, you find that 45MB of the 150MB are just char arrays. This is because the String id can grow quite huge. My solution is to simply remove the id, and cache the hashcode instead. The equals check should not be much slower, as it fails fast for different input items

The result is that DarkSteelRecipeManager uses around 45MB less memory. Some screenshots from eclipse MAT: Without my changes: old_dominator old_retained With the changes in this PR: new_retained new_dominator

ichttt avatar Mar 04 '19 18:03 ichttt