NoiseThreader avatar

NoiseThreader [1.12.2]

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

В настоящее время добавляет многопоточность для генераторов шума в измерениях Vanilla (Обычный мир/Энд/Незер), а также для генератора Обычного мира OpenTerrainGenerator.
Также добавляет многопоточность для генератора пещер/шума в YUNG's BetterCaves.

Стандартные генераторы шума выполняют ресурсоёмкие вычисления только в основном потоке сервера при генерации чанков. NoiseThreader повышает производительность, разделяя эти вычисления и распределяя нагрузку между несколькими потоками.

Прирост производительности может различаться на разных системах, однако в тестах даже 4 ядра демонстрируют улучшения благодаря многопоточности генераторов шума.
По умолчанию минимальное количество ядер, необходимое для активации многопоточности в NoiseThreader, установлено на 4 в целях безопасности. Это значение можно изменить в конфигурации, и улучшения могут наблюдаться даже на слабом железе.

Профилирование времени генерации карты высот (шума) на тестовой системе показало прирост производительности примерно на 50% для Обычного мира Vanilla.
Для Обычного мира OTG результаты составили около 60% улучшения, что более значительно из-за более высокой стоимости генерации в OTG: время генерации карты высот сократилось с ~2.5 мс/чанк до ~1 мс/чанк.
(Для сравнения, существующий мод Multithreaded Noise показал улучшение примерно на 25%-30% и работает только с Обычным миром Vanilla.)
Измерения Vanilla в Незере и Энде также продемонстрировали улучшения, хотя и менее значительные (~10%-30%) из-за использования меньших объёмов генерации шума.

Генерация пещер в YUNG's BetterCaves показала улучшение производительности примерно на 60%, что существенно, учитывая высокую долю затрат на эту операцию в процессе генерации мира.

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

Требуемые зависимости

FermiumBooter avatarFermiumBooterfonnymunkey

Скачать NoiseThreader

 
Тип Скачать Версия Загрузчик Обновлено Размер
ReleaseNoiseThreader-1.1.0.jar1.12.2Forge12 июля 202523,6 КБ
ReleaseNoiseThreader-1.0.0.jar1.12.2Forge5 декабря 202416,8 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.