跳到正文

Invasive Optimizations

作者:Qther

对其他模组的侵入式优化。如果遇到任何问题,请先禁用此模组!

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

侵入式优化

Logo

针对其他模组的侵入式优化,旨在减少服务端(tick)卡顿。
这些改动的侵入性使其更容易崩溃或以其他方式损坏。
请将此类问题报告至问题追踪器,我会尽量及时回复。
每项改动也可通过配置单独开关,并应在等待修复期间暂时解决任何问题。

本模组包含的优化属于以下类别之一:

  1. 补丁已提交但长时间未被审查,或预计在下一个版本发布前有用。
  2. 补丁因与质量无关的原因被拒绝,例如不再维护,这种情况下未来的优化也不会再提交给该模组。
  3. 补丁没有贡献途径(例如闭源模组)
  4. 补丁已应用但在已发布版本中不可用。
  5. 补丁为实验性或用途存疑(这些默认禁用)

当前优化:

  • Accessories
  • accessories.roundabout_collection (1):通过直接访问底层 keySet,避免遍历 Map 的 entrySet。 (PR)
  • 应用能源2
  • ae2.cache_fuzzy_search_max_value (4):在初始化期间缓存 AEItemKey::fuzzySearchMaxValue。 (PR)
  • Botany Pots
  • botanypots.hopper_insertions (1):为漏斗向 Botany Pot 插入物品添加指数退避机制和空仓状态跟踪。 (PR)
  • 机械动力
  • create.fail_fast_clipboard_migration (4):在尝试于 ItemStack.<init> 中迁移剪贴板时快速失败,降低对这一极常见操作的影响。 (PR)
  • Pastel
  • pastel.nuke_item_predicate_mixin (4):移除 Pastel 的 ItemPredicateMixin,因为它既非必需,开销也很大。
  • Pipez(指数退避功能另见 AlmanaX21 制作的 Pipez Lag Fix)
  • pipez.constant_fullness_checks (2):将连接和物品栏满载状态检查转为 O(1) 操作。
  • pipez.early_exits (2):满足相应条件时提前退出目标函数,减少不必要的工作。
  • pipez.extract_looped_work (2):将部分工作移出循环,避免重复执行。
  • pipez.filter_caching (2):使用 BitSet、整数数组或单个整数缓存标签过滤器。此优化会增加内存占用,并使管道加载时间略微延长。
  • pipez.nbt_comparisons (2):通过尽量减少序列化和反序列化操作,大幅提升 NBT 比较性能。
  • pipez.stream_abuse (2):减少高频路径中对 Stream 的滥用,从而降低内存分配率。 (PR)
  • Placebo
  • placebo.lazy_string_concatenation (1):由于 DynamicHolder#get 属于热点代码中的冷路径,因此向 Object#requireNonNull 传递 Supplier。 (PR)
  • placebo.streamless_hashing (1):将 CachedObject#hashComponents 替换为功能等效但不使用 Stream API 的代码。 (PR)
  • SFM
  • sfm.filter_caching (5):使用 BitSet、整数数组或单个整数缓存物品和流体过滤器(目前包括常规/正则表达式过滤器和标签过滤器)。此优化会增加内存占用,并延长首次编译时间。
  • Xycraft Machines
  • xycraft_machines.redstone_checks (3):提取器每个游戏刻都会检查红石信号,而不只是邻近方块更新时检查。
  • xycraft_machines.unnecessary_resorting (3):提取器会定期重新排序配方,但通常没有必要。

常见问题

Invasive Optimizations 支持哪些 Minecraft 版本?

Invasive Optimizations 支持 Minecraft Java 版 1.21–1.21.1,共 2 个版本,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

Invasive Optimizations 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

Qther 的其他作品

查看全部 →