Large block lag when updating cables in a large network
Unbox101 opened this issue · 8 comments
Issue type:
- 🐌 Performance issue
Short description:
When connecting or disconnecting a network cable from a large network the entire server halts and waits for the cable to connect. I have a medium sized network. Every cable I break or replace in my current network halts the server for 4 to 5 seconds. My network has 279 cables connected to it, around 50 item interfaces, and around 30 crafting interfaces, each almost full of recipe cards.
Steps to reproduce the problem:
- Build an integrated mods network as you would an applied energistics or refined storage system connecting everything you do to this system. The more you add to it the longer connecting/disconnecting cables halts the server.
Versions:
- This mod: 1.1.0
- Minecraft: 1.12.2
- Forge: 14.23.5.2808
Profiler output:
@Unbox101 An optimization for this will be included in the next CommonCaps release. (apologies for the long delay)
Please let me know if this optimization is insufficient for you. I have some more ideas for further improvements if needed (note to self: offload recipe validation to another thread).
Thanks for reporting!
Note to self: this is the hotspot (recipe simulation):
@Unbox101 Could you keep your world for a while? I may send you a dev build at some point in the future to make sure that the issue has been resolved.
@Unbox101 Could you keep your world for a while? I may send you a dev build at some point in the future to make sure that the issue has been resolved.
Yeah sure! Happy to help!
I think i have the same problem ?
https://sparkprofiler.github.io/#ISS9ogdJXm
when you have a large storage network。。
performance issues also occurs when i connected the tunnel to alchemistry machines(←while this is much more heavier than mek,i think some code in common capabilities may be wrong or that so)
sparkspark is a performance profiling plugin based on sk89q's WarmRoast profiler.
@alex450 Doesn't look like it. Mekanism seems to be eating up most of your CPU.
@rubensworks i think spark shows so: while i connectd it to mek's bins and once the bin got itemstacks changed(especially amount),then the network recalculate about the storage systems' Current state(i think its the reason i saw so many update methods?)
@alex450 Can you pinpoint the exact stacktrace that you think is relevant?
@rubensworks i think i know it now,
meks' bins are slotless containers like that in thermalexpansion
And commoncapability tried to getSlots()
definitely a bug
there should be exceptions telling me its going wrong in this kind of situation,but the console was silent