LazyRAM

LazyRAM

通过去重、紧凑内存结构、自适应缓存清理和深度挂机模式,实现客户端自动内存优化。

性能

LazyRAM

LazyRAM 是一款完全自动化的客户端内存优化模组,适用于 Minecraft 1.21.1 NeoForge。

它旨在通过压缩、去重和回收多个内存占用较高的 Minecraft 客户端结构来减少不必要的内存开销。

没有菜单、没有 HUD、也没有按键绑定。LazyRAM 在后台自动运行,不会降低你的渲染视距或图形设置。

LazyRAM 优化了什么?

LazyRAM 直接作用于多个 Minecraft 内部内存结构。

它可以:

  • 对模型变体字符串进行去重。
  • 对相同的 BakedQuad 顶点数组进行去重。
  • 压缩已烘焙模型的面列表和方向面映射表。
  • 复用相同的模型面列表,而不是保留多余的副本。
  • 对碰撞和遮挡 VoxelShape 进行去重。
  • 对方块状态缓存使用的 VoxelShape 数组进行去重。
  • 用共享的规范数组替代重复的 6 值方块面数组。
  • 将 BlockState 邻居查找数据压缩为共享的索引表示形式。
  • 复用空的 DataComponent 补丁映射表。
  • 缓存并复用多方块模型谓词。
  • 对等效的多方块烘焙模型进行去重。
  • 在不再需要时自动丢弃临时的优化查找缓存。

目标不是删除游戏数据,而是避免在相同不可变数据可以安全共享时,在内存中保留多个等效的 Java 对象。

自适应堆压力控制

LazyRAM 在 Minecraft 运行时监控 Java 堆使用情况。

当内存压力变高时,可重建的内部优化缓存会被自动丢弃,而不是允许其无限增长。

该模组还包含一个泄漏增长哨兵,它监视堆基线,并在检测到持续内存增长时回收临时缓存。

在临界堆压力下,LazyRAM 可以请求一次显式垃圾回收周期。

这些系统是自动的且可配置的。

深度 AFK 模式

LazyRAM 包含一个自动 深度 AFK(离开键盘) 模式。

默认情况下,在键盘或鼠标无活动 60 秒后,LazyRAM 可以:

  • 回收临时优化缓存。
  • 清除缓存的模型/谓词查找数据。
  • 移除现有粒子。
  • 在 AFK 期间停止处理和生成新粒子。
  • 执行一次垃圾回收周期。
  • 在单人游戏中暂停集成服务器模拟。

一旦检测到键盘或鼠标活动,正常操作将自动恢复。

在单人游戏中,这意味着当你离开时世界模拟可以被冻结,并在你返回时恢复。多人游戏服务器不会被暂停。

崩溃和挂起保护

LazyRAM 还包含一个可选的激进崩溃/挂起防护。

默认情况下:

  • 致命的 Minecraft 崩溃可以立即终止 JVM,而不是打开正常的崩溃界面。
  • 一个看门狗监视客户端渲染循环。
  • 如果客户端约 45 秒 无响应,看门狗可以强制终止 JVM。
  • 资源重载获得额外的宽限期,以免将繁重的重载操作误判为挂起。

如果你更喜欢 Minecraft 的正常崩溃行为,可以在配置文件中禁用这些功能。

配置

LazyRAM 有意不提供游戏内配置界面。

配置存储在:

config/lazyram.properties

各个优化系统可以分别启用或禁用,包括堆压力引擎、泄漏哨兵、显式 GC、崩溃防护、挂起看门狗和深度 AFK 行为。

兼容性

  • Minecraft: 1.21.1
  • 模组加载器: NeoForge 21.1+
  • 客户端: 仅客户端
  • Java: 21
  • 服务器安装: 不需要
  • 许可证: MIT

LazyRAM 使用 Mixins 修改底层 Minecraft 客户端内存结构,因此当与其他大量修改相同渲染、模型或 BlockState 内部机制的模组组合使用时,建议进行组合测试。

理念

LazyRAM 不添加游戏内容,也不会为了节省内存而降低视觉质量。

相反,它专注于减少重复数据、使用更紧凑的表示形式、在临时查找结构变冷时进行清理,并自动响应内存压力。

安装它,然后让它在后台工作吧。