Перейти к содержимому
Mineforgian

Invasive Optimizations

Invasive optimizations for other mods. If you experience any issues, disable this mod first!

Загрузки
318
Подписчики
1
Обновлён
22 июня 2026 г.
Лицензия
MIT

Опубликован 29 апреля 2026 г.

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:

  1. Patch has been sent but has not reviewed for a long time or expected to be useful in the time before the next release.
  2. 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.
  3. Patch has no avenue of contribution (e.g. closed source mods)
  4. Patch already applied but not available in released versions.

Current optimizations:

  • Accessories
    • accessories.roundabout_collection (1): Avoid iterating Map entrySet by directly accessing underlying keySet. (PR)
  • Botany Pots
    • botanypots.hopper_insertions (1): Hopper Botany Pot exponential insertion backoff and emptiness tracking (PR)
  • Create
    • create.fail_fast_clipboard_migration (1): Fails fast when attempting clipboard migration in ItemStack.<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) operations
    • pipez.early_exits (2): Reduces unnecessary work done by exiting targeted functions early if the right conditions are met
    • pipez.extract_looped_work (2): Move some work out of loops to avoid duplicated work
    • pipez.nbt_comparisons (2): Drastically improves performance of NBT comparisons by minimizing serialization/deserialization operations
    • pipez.stream_abuse (2): Reduces abuse of Streams in hot paths to reduce allocation rate (PR)
  • Xycraft Machines
    • xycraft_machines.unnecessary_resorting (3): Extractors resort their recipes every so often but is usually not necessary
    • xycraft_machines.redstone_checks (3): Extractors check for redstone signals every tick rather than only when their neighbours update

Ченджлог

1.0.15Релиз1.21, 1.21.1 · 22 июня 2026 г.

Auto-generated Changelog:

  • perf: early exit for accessories.roundabout_collection
  • refactor: cancel Pastel's ItemPredicateMixin instead of overwriting it
  • feat: accessories.roundabout_collection
  • fix: null check ModList for crash report enhancement
1.0.14Релиз1.21, 1.21.1 · 21 мая 2026 г.

Auto-generated Changelog:

  • feat: add create to optional deps
  • feat: create.fail_fast_clipboard_migration
  • fix: config not respecting values
  • refactor: config rework again
1.0.13Релиз1.21, 1.21.1 · 19 мая 2026 г.

Auto-generated Changelog:

  • fix: add pastel.nuke_item_predicate_mixin to config
1.0.12Релиз1.21, 1.21.1 · 19 мая 2026 г.

Auto-generated Changelog:

  • refactor: rename pastel mixin method
  • feat: add pastel to optional deps
  • feat: pastel.nuke_item_predicate_mixin
  • fix: only register XycraftMachinesEvents if xycraft_machines is loaded
  • feat: remove pipez mixins version scope
  • feat: add MixinSquared as a dependency for future usage
  • feat: add BlockPosSet util for future use
  • refactor: remove Config#get
  • feat: refine xycraft_unnecessary_resorting
1.0.11Релиз1.21, 1.21.1 · 18 мая 2026 г.

Auto-generated Changelog:

  • feat: add xycraft_machines to dependencies
  • feat: xycraft_machines.redstone_checks
  • feat: xycraft_machines.unnecessary_resorting
  • refactor: config
  • feat: update CachedSort
1.0.10Релиз1.21, 1.21.1 · 7 мая 2026 г.

Auto-generated Changelog:

  • feat: pipez.nbt_operations
1.0.9Релиз1.21, 1.21.1 · 7 мая 2026 г.

Auto-generated Changelog:

  • feat: fall back to less efficient long-based sort for large lists
  • fix: use int shl for short-short sort
  • feat: add int-based short-short sort and javadocs for CachedSort
1.0.8Релиз1.21, 1.21.1 · 5 мая 2026 г.

Auto-generated Changelog:

  • feat: rescope mod metadata to serverside
  • feat: improve botanypots.hopper_insertion

Комментарии

Загружаем…