Closed IIpragmaII closed 1 year ago
Another part of the issue is when isStackFiltered() is called that it makes a copy and collects each time due to streams. Simply switching the streams to a normal for loop would provide better performance as well.
thanks for your patience this looks amazing
We noticed that the network is not scaling well. When you are connecting a lot of chests and have many export nodes with a bunch of filters in them the server starts to lag. That happens because we are searching every chest for every defined filter item in every export node.
The fix is to go through all the connected chests an grouping the items in them. Then we are also grouping all the requested items in the export nodes by their requested item. With these two groups we are able to search for the needed items without iterating every chest over and over again.
What we also did is grouping the requested items by their priority. That means, that lowering the priority on an export node makes it receive items before the other export nodes with a higher priority.