Загрузка...

Minecraft без лагов: Эффективные способы оптимизации

Тема в разделе Статьи создана пользователем internet 7 ноя 2024. (поднята 20 ноя 2024) 1470 просмотров

  1. internet
    internet Автор темы 7 ноя 2024 355 8 мар 2019
    Приветствую! Эта статья будет полезна многим, так как Minecraft по умолчанию не оптимизирован и работает на одном потоке, что ограничивает её производительность. Здесь собраны практичные советы и настройки, которые помогут выжать максимум из игры, даже если у вас не самый мощный компьютер.

    Выбор лаунчера и оптимизация памяти для Minecraft
    Начнем с лаунчера. Первым шагом следует обратить внимание на лаунчер. Он должен просто запускать игру с нужными настройками для Minecraft и Java, но, к сожалению, это не всегда так. Для лицензионной версии используем Prism Launcher или Modrinth. Для пиратских версий рекомендую использовать форк призм лаунчера, т.к это лучший вариант из всех бесплатных Freesm Launcher.
    Выделение памяти. Это важный момент, который часто игнорируют. Хотя это выглядит простым, многие делают ошибки. Примеры настроек можно увидеть на скриншотах, а в других лаунчерах всё настраивается через меню — не должно возникнуть сложностей.

    [IMG]
    [IMG]

    Настройка кастомной Java с аргументами для Minecraft
    1. Скачайте GraalVM с официального сайта.

    • Скачивание без установщика, поэтому нужно распаковать архив​
    • Пример пути
      ⁡C:\GRAAJAVA\graalvm-community-openjdk-21.0.2+13.1\bin\javaw.exe
      ⁡​
    • Папку "GRAAJAVA" можно назвать как угодно, но используйте только латиницу и без спецсимволов​
    2. Чтобы получить полный доступ к Java, распакуйте её на системный диск. Установка в другие места или на не-системный диск не допускается.
    3. В лаунчере Minecraft найдите настройки для пути к Java. Укажите путь к javaw.exe, как в примере выше.
    4. Добавьте в настройки лаунчера следующие аргументы:

    Код
    ⁡-Xmn768m -XX:+DisableExplicitGC -XX:+UseNUMA -XX:MaxTenuringThreshold=15 -XX:MaxGCPauseMillis=30 -XX:GCPauseIntervalMillis=150-XX:-UseGCOverheadLimit -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15-Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:+UseCompressedOops-XX:+OptimizeStringConcat -XX:ReservedCodeCacheSize=2048m -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=10000-XX:ParallelGCThreads=10 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:-UsePerfData
    Почему это работает?

    Кастомная версия Java, использующая новый компилятор, позволяет значительно снизить нагрузку на систему, быстрее загружать миры и чанки, а также оптимизировать использование памяти. На слабых системах это даст заметный прирост производительности, а на более мощных системах улучшится стабильность работы игры и ускорится загрузка.
    Этот метод не гарантирует абсолютный результат, но большинство пользователей заметили улучшение производительности.


    Аргументы и Java
    То, о чём я буду говорить сейчас, не является заменой тому, что было написано ранее. Указанные выше аргументы — это основа, на которой можно строить дальнейшую настройку. Их можно сочетать с другими, менять или удалять, если они не нужны.
    Выбор версии Java. Для запуска Minecraft важен не только выбор версии Java, но и её оптимизация под ваш компьютер. Разные версии Java от Microsoft, Adoptium и других, как правило, имеют схожую производительность, но они могут отличаться в зависимости от целей. Рассмотрим несколько популярных версий:
    Oracle GraalVM Enterprise Edition отличается более агрессивным компилятором, что способствует улучшению производительности в играх.
    Intel's Clear Linux Open JDK использует стандартный код OpenJDK, но с оптимизацией для современных процессоров, что улучшает совместимость и производительность на таких системах.
    Azul's Prime OpenJDK обеспечивает высокую скорость работы благодаря использованию Ilvm, однако эта версия ограничена поддержкой Linux и может быть несовместима с некоторыми модами Minecraft.
    Red Hat Java 8 имеет собственный сборщик мусора Shenandoah, который оптимизирует работу с памятью и процессами.
    IBM OpenJDK 9 несколько медленнее в Minecraft, но его отличие в меньшем потреблении памяти, что может быть полезно в условиях ограниченных ресурсов.

    Основные флаги Java. Для корректной работы Minecraft с любой версией Java, начиная с Java 11 и выше, используется набор ключевых флагов, которые повышают производительность игры как на сервере, так и на клиенте:
    Код
    -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:ThreadPriorityPolicy=1 -XX:AllocatePrefetchStyle=3

    Помимо этого, добавление флагов для оптимизации работы сборщика мусора повысит стабильность и снизит «паузы» в процессе игры. Пример полного набора флагов с параметрами для сборки мусора:
    Код
    -Xmx8G -Xms8G -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:ThreadPriorityPolicy=1 -XX:AllocatePrefetchStyle=3 -XX:+UseG1GC -XX:MaxGCPauseMillis=37 -XX:+PerfDisableSharedMem -XX:G1HeapRegionSize=16M -XX:G1NewSizePercent=23 -XX:G1ReservePercent=20 -XX:SurvivorRatio=32 -XX:G1MixedGCCountTarget=3 -XX:G1HeapWastePercent=20 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:MaxTenuringThreshold=1 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5.0 -XX:G1ConcRSHotCardLimit=16 -XX:G1ConcRefinementServiceIntervalMillis=150 -XX:GCTimeRatio=99 -XX:+UseLargePages -XX:LargePageSizeInBytes=2m
    Как правильно выделять память
    Установите одинаковые значения для параметров -Xms и -Xmx, чтобы Minecraft мог корректно управлять памятью. Обычно достаточно выделить от 4 до 8 гигабайт памяти в зависимости от общей доступности оперативной памяти в вашем ПК. Если выделить слишком много памяти, это может замедлить работу игры, а недостаточный объём памяти может вызвать сбои.
    Для оптимальной настройки используйте инструменты, такие как диспетчер задач, чтобы следить за потреблением памяти во время игры. С помощью команды /spark gcmonitor можно отслеживать паузы в сборке мусора и оптимизировать выделение памяти.

    Сборка мусора
    Правильная настройка сборщика мусора критична для стабильной работы Minecraft, как на клиенте, так и на сервере. Неправильно настроенный сборщик может вызывать «паузы» и рывки, что приведёт к ухудшению игрового процесса.
    Я рекомендую использовать Shenandoah для клиентов с ограниченными ресурсами, ZGC для серверов с большим объёмом памяти и ядер, и G1GC для пользователей с меньшими объёмами памяти.
    • ZGC идеально подходит для серверов с большим объёмом памяти, но может снизить FPS на ноутбуках.
    • Shenandoah позволяет минимизировать паузы при сборке мусора, обеспечивая лучшую стабильность.
    • G1GC — лучший выбор для игроков с ограниченными ресурсами, так как минимизирует паузы, сохраняя стабильность работы игры.
    Используйте эти флаги для ZGC:
    Код
    -XX:+UseZGC -XX:AllocatePrefetchStyle=1 -XX:-ZProactive


    Shenandoah
    Shenandoah хорошо работает на клиентах, но снижает пропускную способность сервера. Включите его следующими флагами:
    Код
    -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGuaranteedGCInterval=1000000 -XX:AllocatePrefetchStyle=1

    Больше настроек можно посмотреть здесь.

    G1GC для клиента
    G1GC является стандартным сборщиком мусора, который доступен в GraalVM и подходит для клиентов Minecraft. Хотя флаги, оптимизированные для серверов, от Aikar также могут работать на клиентах, они устанавливают слишком агрессивные параметры, такие как MaxGCPauseMillis, что может вызвать длительные паузы. Кроме того, эти флаги слишком агрессивно настраивают сбор мусора в Old Gen, что не всегда необходимо для клиента, так как на клиенте создаётся меньше мусора.
    Используйте следующие флаги для G1GC на клиенте:
    Код
    -XX:+UseG1GC -XX:MaxGCPauseMillis=37 -XX:+PerfDisableSharedMem -XX:G1HeapRegionSize=16M -XX:G1NewSizePercent=23 -XX:G1ReservePercent=20 -XX:SurvivorRatio=32 -XX:G1MixedGCCountTarget=3 -XX:G1HeapWastePercent=20 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:MaxTenuringThreshold=1 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5.0 -XX:G1ConcRSHotCardLimit=16 -XX:G1ConcRefinementServiceIntervalMillis=150 -XX:GCTimeRatio=99
    Параметры, такие как G1NewSizePercent и MaxGCPauseMillis, можно использовать для настройки частоты и продолжительности сборок мусора в Young Gen. Если на вашем сервере происходят паузы в Old Gen, стоит уменьшить G1HeapWastePercent. В противном случае можно увеличить его и установить G1MixedGCCountTarget на 2 или 1, чтобы уменьшить частоту смешанных сборок мусора за счёт большего использования памяти.

    Настройка потоков сборки мусора
    Флаг -XX=[число] управляет количеством фоновых потоков для сборщика мусора и по умолчанию равен количеству логических (гипертредированных) ядер, делённому на 4. В последних версиях Java количество потоков для сборки мусора автоматически подстраивается под нагрузку. В случае использования ZGC или Shenandoah может потребоваться увеличить этот лимит.

    Рекомендуется установить значение 2 на процессорах с четырьмя потоками и [количество ядер - 2] на других процессорах, но параметры нужно подбирать экспериментально. Если число потоков слишком низкое, сборка мусора может не успевать за Minecraft, что приведёт к лагам или сбоям. Если значение слишком высокое, это может замедлить игру.

    GraalVM Enterprise Edition
    GraalVM — это высокопроизводительная виртуальная машина Java, разработанная Oracle, которая может значительно улучшить производительность Minecraft, как в модифицированных, так и в стандартных версиях игры. Хотя прирост FPS на клиенте незначителен, на сервере, например, при генерации чанков, улучшение может составлять более 20%. Оптимизации GraalVM доступны только в версии Enterprise Edition.

    Аргументы Java для GraalVM EE
    Если вы используете GraalVM EE версии 22+ на Java 17 (или Java 11), применяйте следующие аргументы для оптимизации:
    Код
    -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:AllocatePrefetchStyle=3 -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:+EagerJVMCI -Dgraal.TuneInlinerExploration=1 -Dgraal.CompilerConfiguration=enterprise


    SpecialK
    SpecialK — это универсальный мод для Windows, аналогичный ReShade, но с двумя важными преимуществами для повышения производительности:
    1. Ограничитель кадров — «умный» инструмент, который помогает снизить задержки, устранить разрывы изображения, сэкономить энергию и уменьшить нагрузку на процессор. Это позволяет увеличить производительность по мере необходимости. Этот ограничитель работает в сочетании с технологиями VRR и Nvidia Reflex.
    2. OpenGL-to-DirectX11 оболочка (OpenGL-IK) — снижает задержку в оконном режиме Minecraft и добавляет полезные функции, такие как авто-HDR и возможность изменять настройки безрамочного окна.
    Приоритет процесса
    Для улучшения производительности Minecraft также рекомендуется установить более высокий приоритет для процесса Java в Диспетчере задач. Это позволит системе уделять больше ресурсов процессу игры. Для этого выполните следующие шаги:
    1. Запустите Minecraft.
    2. Откройте Диспетчер задач (Task Manager), нажав Ctrl + Shift + Esc или Ctrl + Alt + Del и выбрав «Task Manager».
    3. Перейдите на вкладку Подробности (Details).
    4. Найдите процесс javaw.exe (или java.exe, в зависимости от вашей конфигурации).
    5. Щелкните правой кнопкой мыши на процессе и выберите «Задать приоритет» (Set Priority).
    6. Установите приоритет на «Выше среднего» (Above Normal).


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

    Sodium - основной мод на оптимизацию, улучшает FPS и снижает нагрузку на процессор и графику.
    Sodium Extra - мод увеличивающий функционал Sodium'a.
    Reese's Sodium Options - мод увеличивающий функционал Sodium'a.
    DashLoader - ускоряет запуска майнкрафта.
    Lithium - оптимизирует большинство майнкрафт механик, физику, логику и ИИ.
    Indium - оптимизирует рендер эффектов, дополнение к Sodium.
    Starlight - оптимизрует свет.
    ImmediatelyFast - ускоряет медленные рендеры.
    EntityCulling - не прогружает мобов за стенами.
    More Culling - оптимизирует еще больше кол-во действий которые вне вашего поле зрения.
    FerriteCore - оптимизирует потребление оперативной памяти.
    Memory Leak Fix - исправляет утечку памяти.
    Hold That Chunk - убирает лаги из-за быстрого перемещения между чанками.
    Better Beds - оптимизирует кровати.
    С2M - ускоряет прогрузку чанков и стабилизуерт FPS при их прогрузке.
    Больше модов вы можете глянуть тут > UsefulMods PerformanceMods


    Это лишь несколько примеров модов для ознакомления. Основная цель модов — упростить работу Minecraft и улучшить алгоритмы. Однако не стоит устанавливать множество модов для одной и той же задачи, это не принесет пользы. Устанавливайте только те моды, которые решают реальные проблемы.

    Также рекомендую обратить внимание на оптимизацию самой системы. Наверняка вы найдете множество гайдов, но будьте осторожны, не стоит слепо доверять первому попавшемуся видео на YouTube. Лучше опираться на базовые знания и разумный подход, чтобы не нанести вред системе. И, конечно, всегда полезно делать резервные копии, чтобы избежать проблем в случае неудачных изменений.
     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
    7 ноя 2024 Изменено
  2. Bogdan4565
    Bogdan4565 7 ноя 2024 :amzxc: :animedance: 580 10 сен 2018
    не проще просто сборку скинуть?
     
    1. KOKURO
      Bogdan4565, ты должен сам собирать сборку. Большинство паблик сборок - мусор. В них накидали много модов и все, даже конфиги не настроили. Можешь проверить сам это. Накинь 20 модов на оптимизацию и потом сборку с 5 основными модами. На маленькой сборке игра будет работать стабильнее
  3. Ягода
    Ягода 7 ноя 2024 Twitch party - новости twitch 24 501 29 июн 2019
    ну как раз под турнир тема залетела, теперь каждая микроволновка сможет запуститься
     
    1. Посмотреть предыдущие комментарии (1)
    2. internet Автор темы
      Toil, поможет, моды это как второстепеное для оптимизации. А так если играть на дефолт лаунчере то это кринж чета.
      7 ноя 2024 Изменено
  4. dassdaasddas
    dassdaasddas 7 ноя 2024 фурмарк не аксиома 169 11 авг 2018
    Единственная проблема Майнкрафта из-за чего хуевая оптимизация - работа на opengl, на вулкане априори больше фпс будет
     
  5. EXoTuK
    EXoTuK 7 ноя 2024 Забан3н 65 26 май 2022
    Отличная статья, но добавлю по поводу лаунчеров. Я считаю, что лучше использовать ElyPrism вместо
    Freesm т.к он имеет из коробки систему скинов от сервиса ely.by (( Её конечно, можно добавить в лаунчер из статьи модом, но кому это надо, когда есть уже готовое решение. ))
     
    7 ноя 2024 Изменено
    1. internet Автор темы
      EXoTuK, честно но форк елипризм хуета) фризм лучше сделан
  6. Unishiri
    Unishiri 30 янв 2025 :cutedog: 1745 16 мар 2019
    Знал про модификации для оптимизации, но шаманство с джавой для меня в новинку, буду пробовать :finger_up:
     
Загрузка...
Top