懒加载区块

懒加载区块

原版区块加载系统会一次性调度玩家周围的大量区块,导致服务器CPU瞬时过载和TPS崩溃

优化

懒惰区块加载

原版区块加载系统会一次性在玩家周围调度大量区块,导致服务器CPU瞬间过载,TPS崩溃。 懒惰区块加载改进了这一过程:它像水龙头一样控制区块加载速度——CPU繁忙时自动关小,空闲时开大——让探索新地形不再卡顿。


本模组功能

🚶 防卡顿探索

安装此模组后,服务器会根据当前CPU使用率自动调整区块加载频率。使用率低时全速加载,使用率飙升时自动减速——TPS全程保持稳定。

  • 它不会让区块加载更快——而是让加载更流畅。牺牲一点瞬时速度,换来无卡顿的体验。
  • 真正的预防机制,而非事后修复。

🔄 后台预加载

当你站立不动时,模组会自动利用空闲CPU预加载你周围的未生成区块。

优先级:脚下的区块优先,然后是你的视线方向,再是两侧和后方。

  • 默认启用,空闲时工作。
  • CPU繁忙时自动暂停——绝不抢占资源。
  • 每5秒输出一次状态至日志。

🛡️ 额外保护

  • 登录预热:进入世界后的前10秒内无限制,确保初始地形快速加载。
  • 保存安全:世界保存时自动暂停所有区块加载,防止保存卡死。
  • 紧急绕过:当玩家踏上未加载区块时,所有限制立即失效,该区块瞬间加载。
  • 热点区块追踪:频繁访问的区块被标记为热点;预加载会延长它们的保留时间。
  • 维度白名单/黑名单:通过dimension_blacklist / dimension_whitelist限制预加载范围,避免在自定义维度浪费CPU。

安装

放入你的mods文件夹即可——开箱即用,无需配置。仅服务端需要安装;客户端无需安装。

单人游戏同样完美运行。

平台 支持版本
Fabric 1.21.x
Fabric 26.1+
Forge 1.20.1
NeoForge 1.21.1

💡 与C2ME、Lithium和VulkanMod等优化模组完全兼容。不修改区块生成算法——仅调整加载节奏。
🗺️ 自动检测Chunky预生成任务,在生成期间解除CPU限制全速运行;完成后自动恢复。


监控

每5秒会在logs/latest.log中记录一条状态信息:

[LazyChunkLoad] Tick:1200 CPU:45% Sched:3/t Warmup:N Preload:ON Main:OK
字段 含义
Tick 当前Tick数
CPU CPU使用率百分比
Sched 上一个Tick加载的区块数
Warmup Y=预热中 / N=正常
Preload ON=激活 / OFF=禁用 / PAUSED=CPU过高
Main OK=全速 / SLOW=限流

配置

配置文件位于config/lazychunkload.json(自动生成,修改后即时生效)。

如果你只是想正常使用模组,无需阅读以下内容——默认设置已是最佳实践。

📝 完整配置参考(点击展开)
选项 默认值 描述
cpu_threshold 0.85 限流的CPU使用率阈值(0~1,越高越宽松)
warmup_ticks 200 登录后跳过限制的Tick数(20 Tick = 1秒)
preload_enabled true 启用后台预加载
preload_radius 64 预加载半径(以区块为单位)
preload_delay_seconds 1 站立不动后开始预加载的延迟秒数
distance_weight 0.5 距离优先级权重(越近优先级越高)
direction_weight 0.4 方向优先级权重(面向方向优先级更高)
aging_weight 0.1 老化优先级权重(长时间未加载优先级更高)
direction_multiplier 5.0 方向加成倍数
aging_factor_ms 10000 多少毫秒算作“已老化”
log_loading false 向控制台输出详细信息
performance_tips true 当CPU或MSPT超过阈值时输出调试日志(不再发送到聊天栏)

此外还有一个运行时配置位于config/lazychunkload-runtime.json:

选项 默认值 描述
limit_enabled false 设为true可完全禁用CPU限制(全速)
tips_disabled false 设为true可禁用聊天性能提示

工作原理

  1. 每Tick检查一次CPU使用率(1秒缓存,几乎零开销)。
  2. CPU低于85%:区块正常加载,无限制。
  3. CPU高于85%:自动降低区块加载频率——CPU越高,限制越强,但即使在最差情况下,每0.2秒也至少允许一次通行——确保地形永远不会永久卡死。
  4. 当你站立不动时:后台扫描周围未生成的区块,按优先级分批加载。
  5. 当你探索时:踏上空区块会立即触发紧急绕过,不施加任何限制。