Ellpeck / ActuallyAdditions

A Minecraft Mod about lots of useful gadgets and things!
http://minecraft.curseforge.com/projects/actually-additions
MIT License
213 stars 98 forks source link

Item Laser Relays cause performance drops in some situations #279

Closed utoc closed 8 years ago

utoc commented 8 years ago

This one may be an end-user issue. We had a little lag tonight and did a sampler profile to determine the cause after a restart failed to fix the issue. It appears that the itemRelay call was the issue and one user online broke his relays and the issue was abated. He believes he had inadvertently made loops with his relay but even one loop didn't seem to cause the issue.

Is it possible, when a user is linking, to confirm that a loop is not present when linking relays? Are there other issues present.

Stuff for you: http://bbqsauce.terron.com/ellpeck/lag1.nps (before reboot, issue at its peak but the server had been up for 8 hours) http://bbqsauce.terron.com/ellpeck/lag2.nps (after reboot, issue immediately present) http://bbqsauce.terron.com/ellpeck/lag3.nps (after relay broken, a pseudo-baseline) http://bbqsauce.terron.com/ellpeck/actuallyadditionsdata0.dat (this is a remade item relay network, the loops aren't near as significant as you saw in lag2.nps)

Running AA r65 with FML 2095

Ellpeck commented 8 years ago

I guess you mean that the user placed a chest with a hopper below, then an Item Interface next to the hopper and an Item Laser Relay above it, directly adjacent to the input chest? If so: Yes, that is an end user error, and no, that cannot be fixed. It shouldn't really cause lag though, either. Usually. Also I have no idea how to open .nps files.

utoc commented 8 years ago

I've messaged the user in question and asked him to respond to this to give you an idea of what he did to cause said loops. Also, VisualVM is great for NPS files (java profiling :V )

Woif1990 commented 8 years ago

There's two loops I did: One was basically importing and exporting the same items from a storage network network. Export to Storage drawers > Have an ESD take the items and put them in an item interface > Relay network to Multifarm > Have a relay to Item Interface > ESD > import chest > Storage netwrok which ended up looping. (Items were dirt/seeds/fertilizer, since I wanted to keep any excess in the network but it didn't work as planned.)

Other loop: Similar, just replace the storage network with a single 2x2 storage drawer with same items. Just replace the storage network import/export with it.

utoc commented 8 years ago

It should be noted tonight that his export loop of fertilizer/dirt/seeds was not in operation during the past 24 hours and the lag reappeared tonight.

The current state of the network is Relay 0 (ESD Accepts dirt, seeds, exports dirt seeds, melon, punkin @ Forestey farm) <-> Relay 1 <-> Relay 2 (ESD accepts pumpkin/melons) <-> Relay 3 <-> Relay 4 (accepts all)

utoc commented 8 years ago

Ok, all loops and potential loops are removed at this point so that the configuration allows pumpkin and melons to be dropped off at relay 2 and all other items are imported at relay 4. this setup causes lag.

You can find the data file here: http://bbqsauce.terron.com/ellpeck/actuallyadditionsdata0-focheesy.dat And the sampler NPS here: http://bbqsauce.terron.com/ellpeck/lag6.nps

Ellpeck commented 8 years ago

What's the setup? Just make a screenshot, I can't extract any "setup" from the data file or your weird explanation :'D

Ellpeck commented 8 years ago

I don't really know what to do about this, to be honest.

Woif1990 commented 8 years ago

Here's screenshots: http://imgur.com/a/qu0fM

Ellpeck commented 8 years ago

So, does this cause any lag or not..?

Woif1990 commented 8 years ago

From what @utoc has said yes. At least TPS lag. What the first set was doing, was taking dirt and seeds out of the output and putting them back in the input. That's believed to be the problematic area.

Ellpeck commented 8 years ago

I don't understand why that would be causing tps lag though.

Ellpeck commented 8 years ago

To be honest, I don't really know what to do about this. How bad is it anyways, @utoc?

utoc commented 8 years ago

Currently offshore so apologies for not being active on this issue. This relay setup carrys us from 20TPS to 15-16TPS. Its removal brings us almost immediately back to 20TPS.

On 10/16/16, Ellpeck notifications@github.com wrote:

To be honest, I don't really know what to do about this. How bad is it anyways, @utoc?

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/Ellpeck/ActuallyAdditions/issues/279#issuecomment-254056264

utoc commented 8 years ago

Ellpeck, Tonight in the next few days I will try to make a SSP world that replicates this issue so you can have something to test against; it may be a couple of days.

Ellpeck commented 8 years ago

What about this issue?

utoc commented 8 years ago

http://bbqsauce.terron.com/ellpeck/relays-are-cancer.zip

See the download above; with one item per second going into the item conduit (SW Corner) and 5 relays onto a single relay network (meant to represent the distance traversed in the servers' lag case we're getting about 15-17ms tick time vs 6ms when no relays are present. I'm not sure why the server case puts us over the edge; it may have to do with crossing chunk boundaries etc but this is a logical representation of what he's doing above.

Items leave A, link through B (distance closing relay) to C. At C, the items are processed and any overflow items continue onto D (distance closeing relay) and make their way to E.

utoc commented 8 years ago

Ok, I've grossly oversimplified the issue with this world:

http://bbqsauce.terron.com/ellpeck/relays-are-cancer-simplified.zip

The premise seems to be this: Relay networks suck when they have distance to close and conduits from other mods are much more efficient tickwise. Please check this one out. Load it with BBQ pack but it really only needs EnderIO, AA and Storage Drawers

Ellpeck commented 8 years ago

Will test this as soon as I'm back home. Weird thing is, even with big item laser networks, I've encountered no problems.

utoc commented 8 years ago

Thanks bro. Do you plan on releasing any time soon?