Значения приоритетов по умолчанию для потоков Render и Server зависят от количества потоков процессора, в частности, больше 4 по правилам Mojang. Если процессор имеет более 4 потоков, то Render Thread имеет приоритет 10, а Server Thread — 8. В противном случае приоритет потоков равен 5, что является значением по умолчанию для любого потока по правилам Java. Это плохая практика, потому что виртуальная машина Java не расставляет приоритеты для игровых задач, которые являются наиболее ресурсоемкой частью процесса Minecraft. Например, это может вызывать лаг-спайки во время генерации мира на слабом процессоре. Данный мод позволяет взять контроль над этими значениями путем редактирования конфигурационного файла.
Более высокий приоритет для Render Thread — выше FPS и стабильность кадров. Более высокий приоритет для Server Thread — стабильнее tick rate с меньшими задержками. Но это не означает, что можно просто установить всё на 10. Это зависит от проблемы: если у вас низкий TPS, вам нужно понизить приоритеты потоков рендеринга и звукового движка и увеличить приоритет серверного потока. Если у вас низкий FPS и спайки, вам нужно понизить приоритеты серверного потока и звукового движка и увеличить приоритет потока рендеринга. Дополнительно, некоторые другие фоновые потоки работают с ненужным приоритетом, который может прерывать основную игру. Вы можете использовать опцию конфигурации everyOtherThreadPriority
для установки приоритета для них. Если установить значение 1, это хороший тест, чтобы проверить, связаны ли проблемы с производительностью с приоритетами потоков, и это обычно значительно повышает производительность на слабом ПК.
Чтобы открыть конфигурационный файл, выполните команду /threads openconfig
.
Чтобы применить изменения, выполните команду /threads reload
или перезайдите в мир.
threads.json
{
"renderThreadPriority": 1-10, // По умолчанию 5 или 10, если количество потоков CPU > 4
"serverThreadPriority": 1-10, // По умолчанию 5 или 8, если количество потоков CPU > 4
"soundEngineThreadPriority": 1-10, // По умолчанию 5
"everyOtherThreadPriority": 0-10, // По умолчанию 0
"threadBlacklist": [],
"debug": false // Если true, логирует информацию о действиях с каждым потоком.
}
Устаревшая конфигурация для версии 1.20.1 Forge.
Конфигурация будет применена после загрузки мира или изменения конфигурационного файла, пока мир открыт.
threads-client.toml
render_thread = Диапазон 1-10. По умолчанию 5 или 10, если количество потоков cpu > 4.
server_thread = Диапазон 1-10. По умолчанию 5 или 8, если количество потоков cpu > 4.
sound_engine_thread = Диапазон 1-10. По умолчанию 5.
По умолчанию 0, что означает без изменений.
every_other_thread = Диапазон 0-10.
thread_name_blacklist = ["Thread-3"]