Blog

修理 Minecraft 卡顿:消除帧时间峰值

Minecraft 卡顿源于垃圾回收暂停和区块加载,而非低帧率。 减轻内存压力,优化区块加载,并停止过度分配 RAM.

TRtrolPublished 1 min read

什么是 Minecraft 卡顿的真正含义?

卡顿是帧时间问题,而不是帧率问题。你的平均 FPS 可能达到 300,但游戏每隔几秒就会冻结一小段时间。计数器看起来很健康,因为它将峰值平均化。你感受到的正是峰值本身。导致卡顿的两个原因分别是垃圾回收暂停和区块加载,而单纯追求更高的帧数并不能解决这些问题。

想象一下,一个稳定的 120 FPS 与一个降至 20 FPS 且每当垃圾回收器运行时都会出现一帧的 300 FPS 相比。120 FPS 感觉更好。你的眼睛追踪的是最差帧,而不是平均帧。所以这里的关键任务是让最差帧变得不那么糟糕,而你修复问题的顺序很重要。

你感受到的实际发生的情况导致卡顿的原因
每隔几秒钟就会冻结垃圾回收暂停FerriteCore, ModernFix
进入新地形时出现停顿主线程上的区块生成C2ME, Lithium
增加 RAM 后卡顿变得更严重过大的堆,更长的垃圾回收周期降低分配量
随机的小停顿后台应用程序或硬盘疲劳关闭应用程序,检查磁盘

如何停止垃圾回收卡顿??

首先,减少内存压力。 大部分微卡顿是由于 Java 垃圾回收器暂停游戏以回收内存造成的。 减少游戏占用的内存量,这些暂停就会变得更短且更少。 两个模组完成了大部分工作。 FerriteCore 对 Minecraft 在内存中保留的数据进行去重和压缩,而 ModernFix 在此基础上修剪分配和加载时的浪费。

原因很简单。 回收器只需在有足够的垃圾可回收时才需要停止游戏。 减少其回收的对象,就能减少其打断你的频率。 仅 FerriteCore 就能显著减少堆内存占用,这也是它在所有严肃卡顿修复模组中的首选原因.

铁氧体芯

压缩 Minecraft 在 RAM 中存储的数据。占用空间更小意味着更短、更少见的 GC 暂停.

现代修复

精简资源分配,消除加载时间冗余。可干净地堆叠在 FerriteCore 之上.

C2ME

将区块生成任务分配到更多 CPU 线程,以防止新地形出现卡顿.

降低世界模拟的成本,让游戏在您移动和战斗时保持流畅.

我该如何解决区块加载卡顿的问题?

当你冲刺进入新的区域时感受到的震动,是区块生成阻塞了主线程。C2ME 将这些工作分散到更多的 CPU 核心上,这样世界就在你面前构建,而不是在你身后追赶。 结合 Lithium 使用,它可以降低实体、生物 AI 和物理的每刻成本,从而避免模拟落后。

这两者分担了工作量。C2ME 处理 新的 区块。Lithium 保持 现有 世界的运行成本低廉。 它们共同将开放世界的冲刺从起停式的爬行变成了一种保持节奏的状态。 你通常会在快速游玩时最能注意到这种区别。 如果你关心在压力下流畅的移动,请参阅 如何为 PvP 获取稳定的 FPS

为什么更多的 RAM 会使卡顿更严重?

因为更大的堆需要更长的时间来清理。 当你将更多的内存交给 Java 时,每次垃圾回收扫描都需要覆盖更多的范围,因此导致你的帧冻结的暂停时间会变长,而不是变短。 人们期望通过增加分配来获得流畅性,但结果恰恰相反。 如果你的卡顿是在 RAM 增加后开始或恶化的,那么你已经找到了罪魁祸首.

同样的原因,在释放内存之前堆砌大量模组是一种陷阱。在调整内存分配滑块之前,请先安装 FerriteCore 和 ModernFix。如果你的瓶颈在于内存,减少内存使用量最佳模组 会提供更深入的解决方案。

修复的最佳顺序是什么??

  1. 安装内存对

    在Fabric中添加FerriteCore和ModernFix。这会减少堆大小,并且大部分卡顿都会消失.

  2. 添加块和勾选对

    安装 C2ME 和 Lithium。新的地形可以防止卡顿,模拟运行成本依然低廉.

  3. 合理调整你的内存

    如果分配量高于 4-6 GB,请将其降低。在繁忙区域测试,而非新建的平坦世界.

  4. 戴上帽子,清理干净

    将帧速率略低于刷新率,或启用垂直同步,并关闭占用 CPU 资源的后台应用程序.

指责版主前,快速检查清单

一些非版主原因可能潜藏其中,在重新安装任何东西之前,值得排查一下.

  • 帧速率上限或垂直同步。稳定的帧率比峰值更重要,即使最高帧数有所下降。
  • 后台应用程序。浏览器、语音客户端和更新任务会占用 CPU 资源并导致游戏过程中出现卡顿。
  • 你的硬盘。满载或出现故障的硬盘在读取数据块时会卡顿。释放空间并检查硬盘健康状况。
  • 着色器。过多的着色器包会增加帧时间成本。禁用后进行测试以隔离问题。

这正是精调配置发挥作用的地方。Terminus 的性能堆栈已预先接线并预设了启动配置,因此您可以跳过 JVM 标志的繁琐设置,直接开始游玩。

常见问题

获取Terminus

Performance stack pre-tuned. No JVM flags to memorize.