AbyssalCraft

AbyssalCraft

20M Downloads

AbyssalCraft::AbyssalCraftEventHooks_damageStuff

RainOfPain125 opened this issue ยท 4 comments

commented

Description:

I doubt the modpack devs can do anything about this, sooooooo :)

Modpack: All The Mods 3

I did a timings report, and AbyssalCraft::AbyssalCraftEventHooks_damageStuff is causing considerable lag

Crash report:

Timings report - https://timings.aikar.co/?id=4e87304b77804c1ba4c07bd30de39137
https://i.imgur.com/hyEP7hS.png

Affected versions ("latest" is NOT a version):

  • Minecraft: 1.12.2
  • Forge: 2768
  • AbyssalCraft: 1.12.2-1.9.4 13.jar

Latest log file for when the issue was present:

Log is way too large for any of those websites
2019-01-20-1.log

commented

Do you have a mob grinder running on the server? That's about the only logical conclusion I can come with as to why a lot of mobs would be getting attacked (which is the event the above event listener is tracking) within a short time span.

commented

Do you have a mob grinder running on the server? That's about the only logical conclusion I can come with as to why a lot of mobs would be getting attacked (which is the event the above event listener is tracking) within a short time span.

A single, small mob spawner with 4 spawners can cause this much lag? Imagine scaling that up with tons of players, and bases that want much larger, expansive spawners. Are you sure theres not a more efficient way to go about tracking attacking mobs..? :(

We're using Golden Spikes to kill mobs, which don't instant kill - and only takes two points (1H) of damage every 10 ticks

commented

Thing is, the code for that event listener isn't very resource intensive at all, it merely checks if the mob is a specific type of mob and if the source of damage is a specific thing in order to determine if it should cancel the event, which it likely won't in this scenario. But that apparently generates a lot of overhead when it goes through it frequently.
For the sake of testing, can you run a timings report with the grinder off, to rule out any other possible sources of it.
There is one change I can think that potentially would boost the performance of the code under these circumstances. Unsure how much though.

commented

Closing this for now. I can't really do much more on my end when it comes to optimization (unless I straight up remove all of the relevant code, but that kinda defeats the purpose of said code).