Mekanism

Mekanism

111M Downloads

reopen of 5181

PhanaticD opened this issue ยท 4 comments

commented

this is a reopen of #5181

https://www.dropbox.com/s/u1o5kmssz5w6u33/sampler-snapshot.nps?dl=0

as you can see when arranged by time spent, it is the third most laggy thing https://gyazo.com/1aee6dba25c5291c8d4370d55a269f0e

commented

lag spikes are bad enough i was able to do a jstack reliably during the spikes (they last 2-3 seconds) and consistently this shows up

probably sync chunkloads on main thread causing it

"Server thread" #21 prio=5 os_prio=0 tid=0x00007f7ee6c53800 nid=0x5d91 runnable [0x00007f7e5519f000]
   java.lang.Thread.State: RUNNABLE
        at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:89)
        at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:135)
        at net.minecraft.world.World.getChunkFromChunkCoords(World.java:309)
        at net.minecraft.world.World.getChunkFromBlockCoords(World.java:304)
        at net.minecraft.world.World.getBlockState(World.java:910)
        at net.minecraft.world.World.isAirBlock(World.java:229)
        at mekanism.common.multiblock.UpdateProtocol.isAir(UpdateProtocol.java:276)
        at mekanism.common.multiblock.UpdateProtocol.loopThrough(UpdateProtocol.java:160)
        at mekanism.common.multiblock.UpdateProtocol.doUpdate(UpdateProtocol.java:464)
        at mekanism.common.tile.TileEntityMultiblock.doUpdate(TileEntityMultiblock.java:154)
        at mekanism.common.tile.TileEntityMultiblock.onUpdate(TileEntityMultiblock.java:104)
        at mekanism.common.tile.TileEntityBoilerCasing.onUpdate(TileEntityBoilerCasing.java:59)
        at mekanism.common.tile.prefab.TileEntityBasicBlock.func_73660_a(TileEntityBasicBlock.java:80)
        at net.minecraft.world.World.updateEntities(World.java:1832)
        at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:613)
        at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:767)
        at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:397)
        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:668)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
        at java.lang.Thread.run(Thread.java:748)
commented
  • You literally could have just posted this info in the other ticket and reopened it. This is not "reopening"
  • The structure is validated every 5 ticks, to ensure nothing replaced a block without sending the correct updates
  • If you actually divide the number of calls by the total time you find if works out roughly as 10ms, the smallest measurement VisualVM can provide.
commented

there is no re-open button: https://gyazo.com/892ac71afebb2519fca8b6914d313ebd

the lag was due to sync chunk loads as a result of the whole structure, it was VERY noticeable in game until the whole boiler was loaded with ftbutils

commented

there is no re-open button

My bad, I swear there used to be.

the lag was due to sync chunk loads as a result of the whole structure, it was VERY noticeable in game until the whole boiler was loaded with ftbutils

There is no such thing as a non-sync chunk load. We require the whole structure to be loaded. We tell everyone to not build across borders for this very reason.