跳到正文

Concurrent Chunk Management Engine (Fabric)

一个旨在提升Minecraft区块性能的Fabric模组。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

并发区块管理引擎 (Fabric)

一个旨在提升 Minecraft 区块性能的 Fabric 模组。

在寻找 NeoForge 版本?

同时也在寻找实验性的硬件加速世界生成?

26.2 版本配合 Terratonic + Terralith 的基准测试(2026 年 8 月 14 日)

|2t-96t|1t-16t|
|——|——|
|C2ME、Paper 和原版从 2 线程到 96 线程的性能图表。C2ME 的初始扩展在约 45 线程时因核心数限制停止在约 1200cps,并持续上升至约 1400cps,直到测试的 96 线程。Paper 无法线性扩展,在约 20 线程时完全停止,最高约 170cps。原版缓慢扩展至 42cps。在 48 核系统上,C2ME 相比原版性能最高约 34 倍,相比 Paper 最高约 8.2 倍。|C2ME、Paper 和原版从 1 线程到 16 线程的性能图表。C2ME 在此完全线性扩展,16 线程时达到 458cps。Paper 的近似线性扩展从 7 线程开始崩溃,16 线程时达到 142cps。原版完全无法线性扩展,16 线程时达到 41cps。C2ME 在单线程上比原版快约 120%,分别为 29.1cps 和 13.2cps。在 Paper 扩展失败之前,C2ME 平均也比 Paper 快约 130%。|

那么 C2ME 是什么?

C^2M-Engine,简称 C2ME,是一个旨在提升区块生成、I/O 和加载性能的 Fabric 模组。它通过并行利用多个 CPU 核心来实现这一点。为获得最佳性能,建议将 C2ME 与 Lithium 和 ScalableLux 一起使用。

C2ME 代表什么?

并发区块管理引擎(Concurrent chunk management engine),它的目标是让游戏在世界生成和区块 I/O 性能方面拥有更好的多线程支持和更强的可扩展性。

与原版的一致性

C2ME 默认不会以原始速度之名牺牲原版功能或行为,也不会改变原版世界生成。
然而,由于原版世界生成的非确定性,即使使用相同的种子,世界每次运行也会
产生显著差异。这不是我们这边的 bug。

虽然我们会仔细检查不修改任何原版行为,但 bug 终究无法避免。
因此,如果你遇到 C2ME 偏离预期原版行为的问题,请随时提交 issue。

模组与数据包兼容性

可在原版 Minecraft 上运行的世界生成数据包完全受支持。
模组中实现的自定义世界生成器通常运行良好,但可能会导致兼容性问题,因为模组作者使用的某些
设计假设为了进一步提升世界生成速度而被打破。
作为世界生成模组作者,如果你发现你的模组出现问题,请随时在我们的 Discord 服务器(链接如下)寻求帮助。
我们愿意帮助模组作者拥抱可扩展的世界生成。

未定义行为清理

C2ME 包含用于世界随机的 CheckedThreadLocalRandom(包含在 UWRAD 中),以及其他一些内容。
这些检测的存在是为了防止模组破坏 Minecraft 内部机制并导致无法调试的问题。
该检测几乎绝不会产生误报,应认真对待,并改为向相应的模组作者报告。

使用须知

请备份你的世界,并保持良好的游戏模组使用习惯。

Minecraft 版本支持状态

仅完全支持最新的 Minecraft 正式版和最新的 Minecraft 快照版。
较旧的 Minecraft 正式版处于长期支持状态,将接收关键错误修复。
较旧的 Minecraft 快照版不受支持。

支持

我们的问题追踪器:链接
我们的 Discord 服务器:链接

更多信息

请查看此处的 README.md:https://github.com/RelativityMC/C2ME-fabric

以往的基准测试

1.21.10 搭配 Terralith 的基准测试(2025 年 11 月 21 日)

|2t-80t|1t-16t|
|——|——|
|||

脚注:https://gist.github.com/ishland/6eb0dd0af4216ffffd340ea994dc5796

1.21.3 的基准测试(2024 年 11 月 24 日)

|2t-80t|1t-10t|
|——|——|
|||

脚注:https://gist.github.com/ishland/9601a033afad4be5b17ffaed859577fd

脚注

基准测试脚注

基准测试设置

所有基准测试均在 Debian 13 上使用单路 Intel(R) Xeon(R) Platinum 8558P 进行,最高限制为 3.2GHz。

openjdk version "26.0.2" 2026-07-21
OpenJDK Runtime Environment Temurin-26.0.2+10 (build 26.0.2+10)
OpenJDK 64-Bit Server VM Temurin-26.0.2+10 (build 26.0.2+10, mixed mode)

使用的数据包:
terratonic-3.0.27.zip,
Terralith_26.2_v2.6.4.zip

C2ME 基准测试

C2ME 基准测试使用的 Fabric 模组:

c2me-fabric-mc26.2-0.4.2-alpha.0.41.jar
Chunky-Fabric-1.5.3.jar
fabric-api-0.157.0+26.2.jar
lithium-fabric-0.25.3+mc26.2.jar
ScalableLux-fabric-0.3.0-alpha.0.3-all.jar
spark-1.10.173-fabric.jar
vmp-fabric-mc26.2-0.2.0+beta.7.236-all.jar
zfastnoise-1.0.40+26.2.jar

更改的设置(c2me.toml):

  • globalExecutorParallelism 设置为线程数

Paper 基准测试

使用的 Paper:paper-26.2-112.jar
使用的 Paper 插件:Chunky-Bukkit-1.5.3.jar
更改的设置(paper-global.yml):

  • worker-pool.io-threads = 4
  • worker-pool.worker-threads 设置为线程数

原版基准测试

原版基准测试使用的 Fabric 模组:

Chunky-Fabric-1.5.3.jar
fabric-api-0.157.0+26.2.jar
spark-1.10.173-fabric.jar

原版测试使用经过修改的 Chunky 强制卸载区块,以避免基准测试期间崩溃。
额外 JVM 参数:-Dmax.bg.threads= 设置为线程数

所有基准测试均在 tmpfs 上、主世界中运行,每次 JVM 执行前都会清空世界文件夹。
种子:114862964781274189
Chunky 配置中已开启 force-load-existing-chunks。

2-96 线程基准测试

JVM 参数:-Xmx32G -Xms32G -Xss4m -Xshare:off -XX:+DisableExplicitGC -XX:+UseNUMA -XX:+UseZGC -XX:-ZUncommit -XX:+UseLargePages -XX:+UseTransparentHugePages -XX:+UseCompactObjectHeaders -XX:+UnlockExperimentalVMOptions -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:+ExitOnOutOfMemoryError -Dchunky.maxWorkingCount=256
预热阶段:以 0 0 为中心、2048 方块半径(数据丢弃)
测量阶段:以 1000000 1000000 为中心、6144 方块半径(共 591361 个区块)

| 线程数 | C2ME cps | Paper cps | 原版 cps |
|————–|———-|———–|————-|
|2|55.11|24.22|20.43|
|4|110.41|49.28|29.35|
|6|166.07|71.66|33.39|
|8|219.92|92.86|36.80|
|10|274.67|110.43|37.15|
|12|329.63|125.05|39.65|
|14|384.75|133.76|39.82|
|16|436.43|144.52|39.98|
|18|490.76|149.11||
|20|546.04|154.36||
|22|601.59|151.71||
|24|658.53|155.99||
|26|710.77|158.12||
|28|756.22|162.46||
|30|812.31|169.11||
|32|867.10|169.11||
|34|914.00|165.42||
|36|975.84|160.83||
|38|1037.48|161.13||
|40|1099.18|153.36||
|42|1130.71|156.98||
|44|1143.83|164.72||
|46|1199.52|162.77||
|48|1244.97|157.65||
|50|1258.21|161.27||
|52|1260.90|160.96||
|54|1274.48|158.80||
|56|1288.37|157.99||
|58|1294.01|155.91||
|60|1294.01|161.53||
|62|1308.32|159.18||
|64|1320.00|163.22||
|66|1334.90|161.57||
|68|1337.92|164.04||
|70|1334.90|169.64||
|72|1365.73|169.69||
|74|1344.00|168.96||
|76|1347.06|169.98||
|78|1384.92|165.83||
|80|1368.89|163.86||
|82|1398.02|163.54||
|84|1401.33|167.86||
|86|1381.68|168.91||
|88|1375.26|167.48||
|90|1394.72|169.06||
|92|1398.02|169.98||
|94|1375.26|168.38||
|96|1381.68|166.58|41.99|

1-16 线程基准测试

JVM 参数:-Xmx16G -Xms16G -Xss4m -Xshare:off -XX:+DisableExplicitGC -XX:+UseNUMA -XX:+UseZGC -XX:-ZUncommit -XX:+UseLargePages -XX:+UseTransparentHugePages -XX:+UseCompactObjectHeaders -XX:+UnlockExperimentalVMOptions -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:+ExitOnOutOfMemoryError -Dchunky.maxWorkingCount=256
预热阶段:以 0 0 为中心、1536 方块半径(数据丢弃)
测量阶段:以 1000000 1000000 为中心、3072 方块半径(共 148225 个区块)

| 线程数 | C2ME cps | Paper cps | 原版 cps |
|————–|———-|———–|————-|
|1|29.06|12.82|13.22|
|2|57.25|25.77|21.57|
|3|85.68|38.29|26.98|
|4|115.08|50.55|30.12|
|5|144.05|61.73|33.73|
|6|172.56|74.15|35.53|
|7|203.05|84.65|37.17|
|8|228.74|93.52|38.88|
|9|257.78|103.44|39.82|
|10|287.26|111.95|39.02|
|11|316.04|118.39|39.04|
|12|344.71|123.73|38.72|
|13|373.36|130.59|40.16|
|14|404.99|134.14|40.52|
|15|430.89|133.54|40.60|
|16|458.90|142.25|41.98|

评论

登录后评论和评分