雷科莱塔

雷科莱塔

一个纯粹的Minecraft内存减少模组

性能

Recoleta

该模组将两个JDK 25 JEP的精神移植到运行中的游戏内,而无需JDK 25运行时:

JEP 原生范围(JDK 25) Recoleta移植 领域
519 - 紧凑对象头 将每个对象头从12字节缩小至8字节 将主流Minecraft值数据编码为紧凑的原始形式,使典型实例占用从24-56字节降至8字节 头部/值打包
521 - 分代Shenandoah 为低暂停并发垃圾回收器添加年轻代/老年代 使用分代复用池、每游戏刻有界引用排空以及堆压力回调,在游戏循环内模拟低暂停局部性 池化和压力感知清理

额外缩减路径

  • 带软引用值的有界LRU,适用于缓存类工作负载
  • 对重复字符串进行弱驻留,以减少重复堆副本
  • 线程本地的可重用位置/向量载体,用于热循环
  • 空闲时段的松弛修剪,用于长生命周期可扩展缓冲区
  • 堆压力通知,接入主动驱逐/回收回调
  • 按渲染风格的粒子上限(低于原版16384),以减少客户端内存峰值
  • 路径碰撞缓存现在使用紧凑打包键,以减少繁重的键更换。
  • 路径步进重用可变向量槽位,避免瞬态向量分配。
  • 生成距离检查使用标量数学,避免临时几何对象。
  • 热生成位置循环重用可变坐标载体,而不是重复分配。
  • 小NBT路径为常见微小载荷调整后备映射的大小。
  • NBT加载路径重新打包新解码的复合标签,使加载的标签不携带松弛空间。
  • 空列表标签容器从适合典型少量条目载荷(附魔、词缀、修改器列表)的小型后备数组开始。
  • 能力比较按条目短路,避免每次物品堆叠相等性检查时构建两个完整标签快照。
  • 区块流数据包以小型容量启动其方块实体列表,而不是默认的10槽位容量。

每次缩减都会通过/recoleta memory status命令报告其命中次数,以便操作员验证调优是否实际生效。

配置

所有开关均位于config/recoleta-memory.toml(Forge配置)中。可运行时编辑;值在每次访问时重新读取。

提示

某些更改具有破坏性,我无法保证它们能与所有模组良好兼容。

对于当前版本,与sable、Sinytra Connector、lithium及其衍生品相关的问题将不被接受,且应保持与ModernFix和FerriteCore的兼容性。