
Invasive Optimizations
Invasive optimizations for other mods. If you experience any issues, disable this mod first!
Оцените первым
845
3
Invasive Optimizations
!Logo
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
placebo.lazy_string_concatenation(1): Pass a Supplierto Object#requireNonNull in DynamicHolder#get as it is a cold path in hot code. (PR) placebo.streamless_hashing(1): Replaces CachedObject#hashComponents with equivalent code that does not use the Stream API. (PR)
- 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
Часто задаваемые вопросы
Совместимость
Зависимости
Ссылки
Создатели
Детали
Лицензия:
Опубликован:3 месяца назад
Обновлён:3 дня назад
