Loading...
Beta Modpages Unclaimed

FastSuite

A performance upgrade for the JSON recipe system.

0 Likes
18918820 Downloads
Created by Shadows_of_Fire

Description

About (FastSuite 4.1.0+)

 

FastSuite enables faster execution of recipe matching through the use of concurrency. For any recipe type with more than 100 recipes, FastSuite will enable Concurrent Recipe Matching, and use multiple threads to match all recipe combinations, instead of relying on a single thread to perform this work. This was observed to produce a 10x - 12x speedup in All The Mods 8, as shown below:

[Multithreaded Test] - Took an average of 301960.28 ns to find the recipe for acacia planks
[Singlethreaded Test] - Took an average of 2774185.5 ns to find the recipe for acacia planks
[Multithreaded Test] - Took an average of 494851.94 ns to find the recipe for sticks
[Singlethreaded Test] - Took an average of 4500045.0 ns to find the recipe for sticks
[Multithreaded Test] - Took an average of 148572.14 ns to find the recipe for crafting table
[Singlethreaded Test] - Took an average of 3246270.5 ns to find the recipe for crafting table
[Multithreaded Test] - Took an average of 370346.56 ns to find the recipe for black shulker box
[Singlethreaded Test] - Took an average of 4711380.0 ns to find the recipe for black shulker box
[Multithreaded Test] - Took an average of 701000.56 ns to find the recipe for failed match
[Singlethreaded Test] - Took an average of 1.3034094E7 ns to find the recipe for failed match

Recipe types that exhibit problems with Concurrent Recipe Matching can be blacklisted in the configuration file.  As compared to the previous iterations of FastSuite, the concurrent matching model is more compatible (it works with Polymorph installed), and it always works (whereas the old model did not work if there was substantial recipe churn and did not work on the first match). It also is a bit less brittle, because it does not need to write any data during matching, which could cause issues if mods were matching recipes off-thread.

 

About (FastSuite 4.0.0 and older)

 

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.


AD Become Premium to remove Ads!

What means Verified?

  • Compatibility: The mod should be compatible with the latest version of Minecraft and be clearly labeled with its supported versions.
  • Functionality: The mod should work as advertised and not cause any game-breaking bugs or crashes.
  • Security: The mod should not contain any malicious code or attempts to steal personal information.
  • Performance: The mod should not cause a significant decrease in the game's performance, such as by causing lag or reducing frame rates.
  • Originality: The mod should be original and not a copy of someone else's work.
  • Up-to-date: The mod should be regularly updated to fix bugs, improve performance, and maintain compatibility with the latest version of Minecraft.
  • Support: The mod should have an active developer who provides support and troubleshooting assistance to users.
  • License: The mod should be released under a clear and open source license that allows others to use, modify, and redistribute the code.
  • Documentation: The mod should come with clear and detailed documentation on how to install and use it.

AD Become Premium to remove Ads!

How to Install

1

Download Forge & Java

Download Forge from the offical Site or here. If you dont have Java installed then install it now from here. After Downloading Forge you can run the file with Java.

2

Prepare

Lounch Minecraft and select your Forge istallation as Version this will create a Folder called Mods.

3

Add Mods

Type Win+R and type %appdata% and open the .minecraft Folder. There will you find your Folder called Mods. Place all Mods you want to play in this Folder

4

Enjoy

You are now Ready. Re-start your Game and start Playing.

More Mods like this

FastFurnace

A performance upgrade for the furnace.

Embeddium

An open-source client performance mod for Minecraft (based on Sodium 0.5.8) prioritizing reliability & mod compatibility

DespawnTweaker

better Let Me Despawn optimization | Don't allow mobs from spawners to despawn

CensoredASM

Huge optimizations that are targeted at 1.12.2. Censored by the masses.

Embeddium Extras

add-on mod for Embeddium that adds new features, bug fixes, performance options but don't break its features.

Bocchium

Forge port of Bedrodium, culling bedrock sides for better performance.

Xenon

Forge port of the Sodium performance mod

Opotato

Port other optimization mods to Forge 1.16.5 & Optimize other 1.16.5 Forge mods.