Invasive Optimizations

Invasive optimizations for other mods, aiming to reduce server-side (tick) lag.
The invasive nature of these changes makes them more likely to crash or otherwise break.
Please report such issues to the issue tracker and I will try to respond to them in a timely manner.
Each change can also be individually toggled through the config and should solve any issues temporarily while you wait for a fix.
Optimizations included in this mod fall under one of the following categories:
- Patch has been sent but has not reviewed for a long time or expected to be useful in the time before the next release.
- Patch denied due to reasons unrelated to quality, such as non-maintenance, in which case future optimizations will also not be sent to that mod.
- Patch has no avenue of contribution (e.g. closed source mods)
- Patch already applied but not available in released versions.
- Patch is experimental or of dubious usefulness (these are disabled by default)
Current optimizations:
- Accessories
accessories.roundabout_collection(1): Avoid iterating Map entrySet by directly accessing underlying keySet. (PR)
- Applied Energistics 2
ae2.cache_fuzzy_search_max_value(4): Cache AEItemKey::fuzzySearchMaxValue during init. (PR)
- Botany Pots
botanypots.hopper_insertions(1): Hopper Botany Pot exponential insertion backoff and emptiness tracking (PR)
- Create
create.fail_fast_clipboard_migration(4): Fails fast when attempting clipboard migration inItemStack.<init>, reducing impact to this extremely common operation. (PR)
- Pastel
pastel.nuke_item_predicate_mixin(4): Nukes Pastel's ItemPredicateMixin as it is unnecessary and expensive
- Pipez (Also see Pipez Lag Fix by AlmanaX21 for exponential backoff)
pipez.constant_fullness_checks(2): Turns connection/inventory fullness into O(1) operationspipez.early_exits(2): Reduces unnecessary work done by exiting targeted functions early if the right conditions are metpipez.extract_looped_work(2): Move some work out of loops to avoid duplicated workpipez.filter_caching(2): Caches tag filters using BitSets, integer arrays, or single integers. Uses more memory and causes loading pipes to take marginally longer.pipez.nbt_comparisons(2): Drastically improves performance of NBT comparisons by minimizing serialization/deserialization operationspipez.stream_abuse(2): Reduces abuse of Streams in hot paths to reduce allocation rate (PR)
- Placebo
- SFM
sfm.filter_caching(5): Caches item and fluid filters (regular/regex and tag filters for now) using BitSets, integer arrays, or single integers. Uses more memory and causes first compiles to take longer.
- Xycraft Machines
xycraft_machines.redstone_checks(3): Extractors check for redstone signals every tick rather than only when their neighbours updatexycraft_machines.unnecessary_resorting(3): Extractors resort their recipes every so often but is usually not necessary
No gallery available for this project.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
Invasive Optimizations 1.0.26 for 1.21.1 1.0.26 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.25 for 1.21.1 1.0.25 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.24 for 1.21.1 1.0.24 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.23 for 1.21.1 1.0.23 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.22 for 1.21.1 1.0.22 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.21 for 1.21.1 1.0.21 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.20 for 1.21.1 1.0.20 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.19 for 1.21.1 1.0.19 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.18 for 1.21.1 1.0.18 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.17 for 1.21.1 1.0.17 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.16 for 1.21.1 1.0.16 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.15 for 1.21.1 1.0.15 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.14 for 1.21.1 1.0.14 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.13 for 1.21.1 1.0.13 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.12 for 1.21.1 1.0.12 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.11 for 1.21.1 1.0.11 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.10 for 1.21.1 1.0.10 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.9 for 1.21.1 1.0.9 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.8 for 1.21.1 1.0.8 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.7 for 1.21.1 1.0.7 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.6 for 1.21.1 1.0.6 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.5 for 1.21.1 1.0.5 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.4 for 1.21.1 1.0.4 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.3 for 1.21.1 1.0.3 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.2 for 1.21.1 1.0.2 |
1.21, 1.21.1
|
neoforge
|
Download |
|
Invasive Optimizations 1.0.0 for 1.21.1 1.0.0 |
1.21, 1.21.1
|
neoforge
|
Download |