Загрузка...

Minecraft without lags: Effective ways to optimize

Thread in Articles created by internet Nov 7, 2024. (bumped Nov 20, 2024) 1730 views

  1. internet
    internet Topic starter Nov 7, 2024 355 Mar 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. Добавьте в настройки лаунчера следующие аргументы:

    Code
    ⁡-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 и выше, используется набор ключевых флагов, которые повышают производительность игры как на сервере, так и на клиенте:
    Code
    -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

    Помимо этого, добавление флагов для оптимизации работы сборщика мусора повысит стабильность и снизит «паузы» в процессе игры. Пример полного набора флагов с параметрами для сборки мусора:
    Code
    -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:
    Code
    -XX:+UseZGC -XX:AllocatePrefetchStyle=1 -XX:-ZProactive


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

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

    G1GC для клиента
    G1GC является стандартным сборщиком мусора, который доступен в GraalVM и подходит для клиентов Minecraft. Хотя флаги, оптимизированные для серверов, от Aikar также могут работать на клиентах, они устанавливают слишком агрессивные параметры, такие как MaxGCPauseMillis, что может вызвать длительные паузы. Кроме того, эти флаги слишком агрессивно настраивают сбор мусора в Old Gen, что не всегда необходимо для клиента, так как на клиенте создаётся меньше мусора.
    Используйте следующие флаги для G1GC на клиенте:
    Code
    -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), применяйте следующие аргументы для оптимизации:
    Code
    -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. Лучше опираться на базовые знания и разумный подход, чтобы не нанести вред системе. И, конечно, всегда полезно делать резервные копии, чтобы избежать проблем в случае неудачных изменений.
     
    This article was useful for you?
    You can thank the author of the topic by transferring funds to your balance
    Thank the author
  2. Bogdan4565
    Bogdan4565 Nov 7, 2024 :animedance: 583 Sep 10, 2018
    не проще просто сборку скинуть?
     
    1. KOKURO
      Bogdan4565, ты должен сам собирать сборку. Большинство паблик сборок - мусор. В них накидали много модов и все, даже конфиги не настроили. Можешь проверить сам это. Накинь 20 модов на оптимизацию и потом сборку с 5 основными модами. На маленькой сборке игра будет работать стабильнее
  3. Ягода
    Ягода Nov 7, 2024 https://lolz.live/threads/8981756/ | VDS сервера в Москве 25,674 Jun 29, 2019
    ну как раз под турнир тема залетела, теперь каждая микроволновка сможет запуститься
     
    1. View previous comments (1)
    2. internet Topic starter
      Toil, поможет, моды это как второстепеное для оптимизации. А так если играть на дефолт лаунчере то это кринж чета.
  4. dassdaasddas
    dassdaasddas Nov 7, 2024 фурмарк не аксиома 176 Aug 11, 2018
    Единственная проблема Майнкрафта из-за чего хуевая оптимизация - работа на opengl, на вулкане априори больше фпс будет
     
  5. EXoTuK
    EXoTuK Nov 7, 2024 Забан3н 68 May 26, 2022
    Отличная статья, но добавлю по поводу лаунчеров. Я считаю, что лучше использовать ElyPrism вместо
    Freesm т.к он имеет из коробки систему скинов от сервиса ely.by (( Её конечно, можно добавить в лаунчер из статьи модом, но кому это надо, когда есть уже готовое решение. ))
     
    1. internet Topic starter
      EXoTuK, честно но форк елипризм хуета) фризм лучше сделан
  6. Unishiri
    Unishiri Jan 30, 2025 :cutedog: 1748 Mar 16, 2019
    Знал про модификации для оптимизации, но шаманство с джавой для меня в новинку, буду пробовать :finger_up:
     
Top
Loading...