modsmith Войти Войти Рус / Eng

Concurrent Chunk Management Engine (Fabric)

c2me-fabric · 41379421 загрузок · MIT

клиент: optional · сервер: required (заявлено автором мода)

Мод Fabric, предназначенный для улучшения производительности блоков Minecraft.

Описание

Механизм параллельного управления фрагментами (Fabric)

Мод Fabric, предназначенный для улучшения производительности блоков Minecraft.

Ищете версии NeoForge?

Ищете экспериментальную генерацию мира с аппаратным ускорением?

Тесты для версии 26.2 с Terratonic + Terralith (14 августа 2026 г.)

|2т-96т|1т-16т| |------|------| |Performance chart of C2ME, Paper and vanilla from 2 threads to 96 threads. The initial scaling of C2ME stops at roughly 45 threads to ~1200cps due to limited core count, and keeps going up to ~1400cps until the tested 96 threads. Paper doesn't scale linearly and fully stops at roughly 20 threads, scoring at most ~170cps. Vanilla scales slowly up to 42cps. C2ME is up to ~34x perf compared to vanilla, up to ~8.2x perf compared to Paper, on a system with 48 cores.|Performance chart of C2ME, Paper and vanilla from 1 threads to 16 threads. C2ME scales fully linearly here, up to 458cps at 16 threads. Paper's linear-ish scaling falls apart starting at 7 threads, and up to 142cps at 16 threads. Vanilla fails to scale linearly at all, up to 41cps at 16 threads. C2ME is roughly 120% faster than vanilla on one threads, scoring 29.1cps and 13.2cps respectively. C2ME is also roughly 130% faster than Paper on average before Paper fails scaling.|

Так что же такое C2ME?

C^2M-Engine, или сокращенно C2ME, — это мод Fabric, предназначенный для повышения производительности генерации фрагментов, ввода-вывода и загрузки. Это достигается за счет параллельного использования нескольких ядер ЦП. Для достижения наилучшей производительности рекомендуется использовать C2ME с Lithium и ScalableLux.

Что означает C2ME?

Механизм параллельного управления чанками предназначен для того, чтобы сделать игру более многопоточной и более масштабируемой с точки зрения производительности генерации мира и ввода-вывода чанков.

Ванильный паритет

C2ME не жертвует ванильными функциями или поведением и не изменяет ванильную генерацию мира во имя чистой скорости по умолчанию. Однако из-за недетерминизма генерации ванильного мира миры будут различаться. значительно разнобой даже с одним и тем же семенем. Это не ошибка с нашей стороны.

Хотя мы тщательно проверяем, чтобы не изменить какое-либо поведение ванили, ошибки в конце концов неизбежны. Итак, если вы столкнулись с проблемой, из-за которой поведение C2ME отклоняется от предполагаемого стандартного поведения, не стесняйтесь открыть проблему.

Совместимость с модами и пакетами данных

Полностью поддерживаются пакеты данных мирового поколения, которые могут работать в ванильном Minecraft.
Пользовательские генераторы мира, реализованные в модах, обычно работают хорошо, но могут вызывать проблемы совместимости из-за определенных предположение о дизайне, использованное авторами модов, нарушено для дальнейшего ускорения генерации мира.
Как автор модов генерации мира, если вы обнаружите, что ваш мод сломан, не стесняйтесь обращаться за помощью на наш сервер Discord (ссылка ниже). Мы готовы помочь авторам модов внедрить масштабируемую генерацию мира.

Дезинфекция неопределенного поведения

C2ME включает CheckedThreadLocalRandom для случайного мира (входит в UWRAD) плюс несколько других. Эти обнаружения существуют для того, чтобы моды не портили внутренние компоненты Minecraft и не вызывали неустранимые проблемы.
Обнаружение почти никогда не должно приводить к ложноположительным результатам, его следует воспринимать серьезно и сообщать о нем. вместо этого соответствующим авторам модов.

Уведомление об использовании

Создавайте резервные копии своих миров и практикуйте хорошие навыки моддинга игр.

Статус поддержки версий Minecraft

Полностью поддерживаются только последняя версия Minecraft и последний снимок Minecraft. Старые версии Minecraft находятся на долгосрочной поддержке и будут исправлены критические ошибки. Старые снимки Minecraft не поддерживаются.

Поддержка

Наш трекер проблем: ссылка
Наш дискорд-сервер: ссылка

Дополнительная информация

Проверьте README.md здесь: https://github.com/RelativityMC/C2ME-fabric

Предыдущие тесты

<details><summary>Бенчмарки для версии 1.21.10 с Terralith (21 ноября 2025 г.)</summary>

|2т-80т|1т-16т| |------|------| |||

Сноски: https://gist.github.com/ishland/6eb0dd0af4216ffffd340ea994dc5796

</details>

<details><summary>Бенчмарки для версии 1.21.3 (24 ноября 2024 г.)</summary>

|2т-80т|1т-10т| |------|------| |||

Сноски: https://gist.github.com/ishland/9601a033afad4be5b17ffaed859577fd

</details>

Сноски

<details><summary>Сноски к тестам</summary>

Настройка бенчмарка

Все тесты проводились на однопроцессорном процессоре Intel(R) Xeon(R) Platinum 8558P с максимальной частотой 3,2 ГГц на Debian 13.

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:

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-26.2-112.jar
Используемый плагин бумаги: Chunky-Bukkit-1.5.3.jar
Измененные настройки (paper-global.yml):

  • worker-pool.io-threads = 4
  • worker-pool.worker-threads установлено на количество потоков

Ванильный тест

Моды тканей, используемые для ванильного теста:

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

Тест Vanilla использует исправленный Chunky для принудительной выгрузки фрагментов во избежание сбоев во время тестирования.
Дополнительные флаги JVM: -Dmax.bg.threads= установлено для количества потоков.

Все тесты выполняются в tmpfs в обычном мире, при этом папка world очищается перед каждым выполнением JVM.
Семя: 114862964781274189
force-load-existing-chunks включен в конфигурации Chunky.

Тест 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
Фаза разминки: радиус блока 2048 с центром 0 0 (данные удалены)
Фаза измерения: радиус блока 6144 с центром 1000000 1000000 (всего 591361 фрагментов)

| Количество потоков | C2ME процессор | Бумажные 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
Фаза разминки: радиус блока 1536 с 0 0 в центре (данные удалены)
Фаза измерения: радиус блока 3072 с центром 1000000 1000000 (всего 148225 блоков)

| Количество потоков | C2ME процессор | Бумажные 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|

</details>

Версии (10)

ВерсияMinecraftЗагрузчикиФайл
0.3.6.0.0 1.21.11 fabric скачать
0.3.5.1.0+1.21.10 1.21.10, 1.21.9 fabric скачать
0.3.5.0.0+1.21.10 1.21.10, 1.21.9 fabric скачать
0.3.4.0.0+1.21.8 1.21.6, 1.21.7, 1.21.8 fabric скачать
0.3.3.0.0+1.21.5 1.21.5 fabric скачать
0.3.2.0.0+1.21.5 1.21.5 fabric скачать
0.3.1.3.0+1.21.4 1.21.4 fabric скачать
0.3.1.1.0+1.21.4 1.21.4 fabric скачать
0.3.1.0+1.21.4 1.21.4 fabric скачать
0.3.0.0.0+1.21.3 1.21.2, 1.21.3 fabric скачать

Страница на Modrinth →