FastSuite

FastSuite

18M Downloads

About

Similar to the projects FastWorkbench and FastFurnace, FastSuite is a mod about improving recipe performance.  However, unlike those two mods, it improves upon all mods that use the JSON recipe system, rather than just a specific subset of recipes.  It does this by turning the list of recipes from a Set into a LinkedList.  This list is then able to be reordered when a recipe is accessed, making accesses to it in the future much faster.  Recipes that are close enough to the front of the list (that are within the "cache size") are not moved to avoid churning.  The cache size is configurable, and each type of recipe has it's own cache space.

Performance

On the first access to a recipe, FastSuite will have identical performance to vanilla.  However, past that first access, the time spent to access a recipe will decrease.  This decrease can be substantial depending how far back in the list the recipe originally was.  The impact is also more dramatic depending on how many recipes are loaded into the game, as then there is a greater range for movement of recipes.  Below, we can see the performance improvements across access times to a few recipes, along with their index in the original recipe list order.  The following series of 6 tables is organized as such:
The leftmost column states the recipe, it's original index in the recipe list, and the current trial.  The next two columns compare FS/Vanilla recipe seek times in microseconds.  The default Cache Size is 100, and is applied here.  This means that entries that are not more than index 100 are not moved.  See this for more information.

There is a dramatic change in recipes that are normally found towards the end of the recipe list, as seen in Acacia Planks.  Recipes that are already towards the front of the list, such as Iron or Gold Nuggets, see minimal or no improvements.  As such, we can see that there is no harm in applying the benefits that FastSuite provides, as it has exceptional performance benefits when it is useful (>95% improvement on acacia planks), and no impact when it would otherwise provide no benefit (as seen in the case of attempting a Failure match).  We actually see slight detriments in Iron and Gold nuggets as they were within the Cache Size, and were actually pushed back by the operation of caching Acacia Planks, Sticks, and Crafting Tables.  However, there is little to no performance lost due to that, especially not as compared to the benefit from caching the later recipes.

Compatibility

This mod should work completely with all other mods.  It is made to be non-intrusive, and should not conflict with anything short of another mod also replacing the recipe manager.  It has been tailored such that it should work with recipe modification mods such as KubeJS and CraftTweaker, and it does not cause any issues with JEI.  I was able to load up All The Mods 3 and not notice any errors, and it was also tested in Skyfactory 1.

This mod does not replace FastWorkbench or FastFurnace, though their benefits will be lessened if this is installed, as some of the work will be offloaded to FastSuite.  To receive maximum performance with regards to recipes, I still advise having both of them installed, but if you had to pick just one, it should be FastSuite over either of the others.