Logistics Pipes

Logistics Pipes

13M Downloads

Performance Issues

Sir-Will opened this issue ยท 8 comments

commented

hey,

logistic pipes are causing insane performance issues.

Can this be improved?

commented

The possibilities we have there are limited. As you can see, it's not one method thats causing the problems, it's the sum of all. We could look into miltitheading the item movement, but that's a completely new discussion.
We try to improve as much as we can but somewhere is a limit when there are hundreds of pipes transportating millions of items.

commented

@Sir-Will good point, but LP does much more on-demand computing, as we actually route items through the network. It is not the pipes causing lags, but it is the huge network that is active.
Comparing this to the Internet, this works quite similar, but in our case one computer calculates all routes, instead of e.g. 6 computers per route.

commented

Well, other pipes from other mods like EnderIO, AE2, BuildCraft, ExtraUtilties and ThermalDynamics don't cause this huge performance issue

commented

@theZorro266 just curious about your statement that you route through the network. Is this performed each time an item enters the network? I imagined when you said that that every item flowing through the pipe stem has a route calculated when it enters the network, along with every time it passes a junction.

commented

@bookerthegeek there are threads running that build a routing table cache. So it is being calculated with each change in the network. Still, there is a lot to do for each pipe. Though I am not saying: "it cannot be improved anymore" ;)

commented

Does "Change in network" mean:

Changes to the physical network only, i.e. pipes and cards only, or does it include the inventory of all the attached inventories?

If the second, is it calculated on inventory change, or called upon item insertion?

commented

Changes in the Network are of Physical nature Yes. Every time a Pipe changes, gets broken or a new route added. Changing includes crafting pipes doing their first task, Modules or active pipes activating for the first Time AND whenever some of those routes/informations change

I think we LP even had particles to show when the routing Table updates...I think thats the Red+Green ones that run through the system every now and then, or when you rightclick a pipe, or update the network pyhsically.

BTW @davboecki you need to disable updates on Shift+Rightclick a routed Pipe, people can kill servers ith that.

commented

If someone has suggestions on how to improve our performance without compromising any feature i'm always open for suggestions and pull requests. Other than that I don't see a reason to keep this issue open.

@Bitterholz I currently don't see a reason to disable that feature because it can help you refresh a broken network table without needing to break a pipe. Users can always kill servers. Use a block breaker and a placer or even several and let them place Logistics Pipes again and again to a huge network and you will get the same result.