动态性能

动态性能

一个轻量的性能模组,能根据服务器的MSPT动态调整视野距离、模拟距离和生物数量上限,同时保持游戏玩法接近原版。

性能

动态性能

一个轻量级的性能优化模组,在保持游戏玩法接近原版的同时,根据服务器的MSPT自适应调整视距、模拟距离和生物容量。

适合希望保持原版体验、同时拥有出色服务器性能的服主,无需禁用游戏特性、强制重启或手动频繁调整设置。

为什么使用这个模组?

  1. 自动降卡顿:在需要时动态降低模拟距离、视距和生物容量,防止服务器卡顿。
  2. 友好的服务器缩放:使用可配置的等级系统,让你精确控制优先降低哪些设置以及降低到什么程度。
  3. 轻量且被动:仅在可配置的时间间隔检查性能,而不是每 tick 都运行繁重的逻辑。
  4. 灵活且兼容:支持专用服务器、单人游戏以及更大的 Fabric 或 NeoForge 模组整合包。
  5. 可见的性能控制:包含游戏内命令,用于检查当前优化状态、查看活动配置以及重新加载配置更改。

简单总结:即使在繁忙时段,也能让你的服务器保持原版体验和流畅响应。

工作原理

动态性能监视服务器每个 tick 的平均处理时间(MSPT)。健康的 Minecraft 服务器目标为 20 TPS,这意味着每个 tick 应低于 50 毫秒。

当达到配置的卡顿阈值时,模组会从第一个可用等级开始,如果需要进一步降低,则继续向下执行列表。当服务器恢复到恢复阈值以下时,它会按相反顺序将设置调回。

如果 MSPT 保持在卡顿阈值和恢复阈值之间,则不会进行任何缩放更改。此时服务器被认为是稳定的。更多详情请参见性能状态部分。

缩放顺序可以在配置文件中设置,详见配置部分。

安装

将模组添加到你的世界或服务器后,你应该可以打开关于面板,该面板完全支持鼠标操作:

/dp about

或

/dynamicperformance about

关于面板

状态

可以使用以下命令检查当前的性能状态、MSPT、视距、模拟距离和生物容量百分比:

/dp status

或

/dynamicperformance status

状态面板

性能状态

报告以下性能状态:

  • 最佳:服务器性能健康,所有配置的等级都已恢复。
  • 稳定:服务器性能介于恢复阈值和卡顿阈值之间。
  • 降级中:服务器 MSPT 较高,设置仍可降低。
  • 卡顿:服务器 MSPT 较高,但所有配置的等级已达到最小值。
  • 恢复中:服务器性能已恢复,设置可以恢复。

配置

配置文件创建于:

./config/dynamic-performance.json

默认内容:

{
  "interval": 15,
  "lag_threshold": 45.0,
  "recovery_threshold": 30.0,
  "levels": [
    {
      "type": "SIMULATION_DISTANCE",
      "max": 16,
      "min": 8,
      "increment": 1
    },
    {
      "type": "MOB_CAP_PERCENTAGE",
      "max": 100,
      "min": 75,
      "increment": 5
    },
    {
      "type": "SIMULATION_DISTANCE",
      "max": 8,
      "min": 5,
      "increment": 1
    },
    {
      "type": "MOB_CAP_PERCENTAGE",
      "max": 75,
      "min": 30,
      "increment": 15
    },
    {
      "type": "VIEW_DISTANCE",
      "max": 20,
      "min": 4,
      "increment": 2
    }
  ]
}

该配置将最显眼的视距更改作为最后的备用方案,同时通过模拟距离和生物生成更早地减少服务器端负载。

选项

  • interval:检查并调整服务器性能的时间间隔(秒)。
  • lag_threshold:触发降级的 MSPT 值。
  • recovery_threshold:触发恢复的 MSPT 值(低于或等于此值开始恢复)。
  • levels:针对视距、模拟距离和生物容量百分比的缩放规则(按顺序执行)。

等级类型

支持的等级类型:

  • VIEW_DISTANCE:调整服务器视距。
  • SIMULATION_DISTANCE:调整服务器模拟距离。
  • MOB_CAP_PERCENTAGE:将生物容量调整为原版生物容量的百分比。

每个等级包含:

  • max:模组可能将此设置恢复到的最大值。
  • min:模组可能将此设置降低到的最小值。
  • increment:缩放时使用的步长。

顺序很重要。降级时按列表从上到下执行,恢复时按列表从下到上执行。

活动配置

可以使用以下命令在游戏中查看活动配置:

/dp config

或

/dynamicperformance config

配置面板

截图显示的是上面列出的默认配置。

重新加载

编辑配置文件后,无需重启即可应用更改,只需运行:

/dp reload

或

/dynamicperformance reload

如果配置文件无效,命令会报告错误并保持之前的有效配置继续生效。

贡献与问题

我热烈欢迎:

  • 错误报告
  • 功能请求
  • 拉取请求

请在上GitHub提交问题或PR。

许可证

本项目采用LGPLv3 许可证。详情请见LICENSE。