Blog
修理 Minecraft 卡顿:消除帧时间峰值
Minecraft 卡顿源于垃圾回收暂停和区块加载,而非低帧率。 减轻内存压力,优化区块加载,并停止过度分配 RAM.
什么是 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。如果你的瓶颈在于内存,减少内存使用量最佳模组 会提供更深入的解决方案。
修复的最佳顺序是什么??
安装内存对
在Fabric中添加FerriteCore和ModernFix。这会减少堆大小,并且大部分卡顿都会消失.
添加块和勾选对
安装 C2ME 和 Lithium。新的地形可以防止卡顿,模拟运行成本依然低廉.
合理调整你的内存
如果分配量高于 4-6 GB,请将其降低。在繁忙区域测试,而非新建的平坦世界.
戴上帽子,清理干净
将帧速率略低于刷新率,或启用垂直同步,并关闭占用 CPU 资源的后台应用程序.
指责版主前,快速检查清单
一些非版主原因可能潜藏其中,在重新安装任何东西之前,值得排查一下.
- 帧速率上限或垂直同步。稳定的帧率比峰值更重要,即使最高帧数有所下降。
- 后台应用程序。浏览器、语音客户端和更新任务会占用 CPU 资源并导致游戏过程中出现卡顿。
- 你的硬盘。满载或出现故障的硬盘在读取数据块时会卡顿。释放空间并检查硬盘健康状况。
- 着色器。过多的着色器包会增加帧时间成本。禁用后进行测试以隔离问题。
这正是精调配置发挥作用的地方。Terminus 的性能堆栈已预先接线并预设了启动配置,因此您可以跳过 JVM 标志的繁琐设置,直接开始游玩。
常见问题
高平均的帧数掩盖了问题。哪怕其他帧渲染再快,一次垃圾回收暂停或区块加载卡顿也会让画面冻结一小段时间。修复内存和区块加载问题,而不是帧计数器.
磁芯用于内存侧,C2ME 用于分块加载侧。锂元素通过降低世界模拟的成本来支持两者。如果可以,请同时安装所有三个.
通常情況下是相反的。更大的堆疊空間會讓每次垃圾回收掃描需要處理更多資料,導致暫停時間更長。如果你的卡頓在增加 RAM 後變得更糟,請將其調整回 4-6 GB.
通常是这样。稳定的帧速率比偶尔飙升的高帧速率感觉更流畅。将帧速率限制在刷新率略低于几帧,或者开启垂直同步,让稳定性占上风.
获取Terminus
Performance stack pre-tuned. No JVM flags to memorize.