
CaveSpeedThing
在Cleanroom/1.12.2上多线程运行YUNG的更好洞穴+更好矿洞世界生成,使洞穴生成不再占用服务器CPU。
查看大图CaveSpeedThing
MC 1.12.2 // CLEANROOM
tl;dr
Better Caves 的世界生成原本是针对单线程生成设计的。此模组将洞穴生成中开销大的部分转移到专门的辅助线程上,并移除了几个可避免的瓶颈。
此模组的功能
- 使用多个 CPU 核心, 开销大的洞穴和洞窟生成在专门的辅助线程上运行,而不是阻塞主世界生成线程
- 仅在值得时进行并行化, 较小的工作负载保持单线程以避免不必要的开销 (阈值可以手动配置,以更好地匹配您的 CPU 和工作负载。)
- 复用计算结果, 共享噪声值只生成一次,而不是多次重新计算
- 缓存生物群系数据, 开销大的生物群系查找只执行一次,并在可能的情况下重复使用
- 减少内存使用, 复用数组和临时缓冲区,而不是不断分配新对象
- 安全失败, 如果并行任务遇到意外问题,生成会回退而不是导致游戏崩溃
与未修改的 Better Caves 相比,在极端的区块生成负载下(旁观模式最大速度,12 渲染距离),洞穴/洞窟雕刻速度大约快 3.01 倍(基于单个 Flare 性能分析档案)。此基准测试有意超过任何现实的游戏场景,以对世界生成进行压力测试。实际性能提升将因硬件、整合包和生成设置而异。
需求
Minecraft 1.12.2 / Cleanroom / Better Caves + Better Mineshafts。
这是一个基于 Mixin 的优化层,并非替代品。它修补现有的 Better Caves 和 Better Mineshafts 类。
与 NoiseThreader 不兼容。 两个项目都通过 Mixin 修改了重叠的 Better Caves 类,因此它们无法同时运行。
推荐的优化设置
为了在 Minecraft 1.12.2 Cleanroom 上获得最佳整体体验,建议遵循 MC 优化指南。它涵盖了当前推荐的优化模组、JVM 设置以及现代 1.12.2 环境的兼容性建议。
不建议使用 OptiFine。 已知它会与许多模组和优化补丁产生兼容性问题。遵循优化指南通常可以获得更好的兼容性和更稳定的游戏。
起源
最初的想法受到 NoiseThreader 背后概念的启发:将 Better Caves 的处理从纯单线程工作流程中移出。
CaveSpeedThing 是一个具有不同架构的独立实现:
- 使用专门的 ForkJoinPool,而不是依赖共享的并行流
- 使用扁平数组存储噪声和对象池,以减少 GC 压力
- 使用预计算的生物群系/缓存数据,而不是并行的生物群系查找
- 额外的 Better Mineshafts 优化
- 运行时诊断和可配置的调整选项
- 不支持 OTG
- 以及更多, 各种较小的优化、修复和生活质量的改进,数量太多(或太琐碎)不便在此一一列出
致谢
感谢使这一切成为可能的项目开发者:
- NoiseThreader 作者 fonnymunkey,启发了并行化 Better Caves 世界生成的想法: CurseForge
- YUNG's Better Caves, 本项目所优化的世界生成系统: CurseForge
- YUNG's Better Mineshafts, 额外的世界生成优化和兼容性: CurseForge
CaveSpeedThing 是一个独立的实现,并未重用 NoiseThreader 的代码。本项目受其总体概念的启发,而当前的架构和优化已分别重写。
// 在我的机器上运行正常。
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。