java.lang.OutOfMemoryError: Java heap space в Minecraft — сколько RAM выделять и как настроить Xmx
Minecraft java heap space — это ошибка нехватки памяти. Чтобы выделить память под Minecraft, открой настройки лаунчера и подними -Xmx до нужного значения (см. таблицу ниже). Для ванили хватает 3 ГБ, для тяжёлых модпаков — 6–8 ГБ. Главное — не выделять больше половины физической ОЗУ компьютера.
Что вообще означает эта ошибка и почему она появляется?
Java работает в изолированной «куче» (heap) — куске оперативки, который ты разрешаешь ей использовать. Параметр -Xmx задаёт потолок: -Xmx2G = максимум 2 гигабайта. Когда игра или модпак пытается загрузить больше данных, чем влезает в этот потолок, JVM выбрасывает OutOfMemoryError и Minecraft падает.
Три самых частых сценария: запустил тяжёлый модпак с дефолтными 2 ГБ, долго играешь в большом мире без рестарта (память набивается мусором), или рядом открыт браузер с кучей вкладок и Java буквально некуда расшириться.
Сколько RAM выделять — зависит от типа игры
Главное правило: не выделяй больше половины физической оперативки. Остаток нужен Windows, браузеру и самой Java для служебных нужд. При 8 ГБ ОЗУ — максимум для Minecraft 4 ГБ, иначе система начнёт тормозить.
- Ваниль / лёгкие сборки (OptiFine, несколько QoL-модов) — достаточно 2–3 ГБ (-Xmx2G или -Xmx3G)
- Средние модпаки (30–100 модов, например All the Mods 9) — 4–6 ГБ (-Xmx4G … -Xmx6G)
- Тяжёлые модпаки (ATM10, Create: Above and Beyond, RLCraft) — 6–8 ГБ (-Xmx6G … -Xmx8G)
- Собственный сервер без GUI — 2–4 ГБ, зависит от количества игроков и плагинов
Важный момент: выделить 16 ГБ при 16 ГБ ОЗУ — не значит «максимальный FPS». Наоборот: Java будет лениво откладывать очистку кучи до последнего, что вызывает freeze-паузы GC (сборщика мусора) по 1–3 секунды. Оптимум — разумный запас, не потолок.
Как изменить -Xmx в популярных лаунчерах?
В каждом лаунчере путь немного отличается, но смысл один: найти поле JVM-аргументов или раздел «Память» и поставить нужное значение.
- Prism Launcher / MultiMC: Settings → Java → Maximum memory allocation. Либо правой кнопкой на инстанс → Edit Instance → Settings → Memory, включить Override, поставить Maximum memory.
- ATLauncher: Settings → Java/Minecraft → Maximum Memory/RAM. Значение в мегабайтах: 4 ГБ = 4096 МБ, 6 ГБ = 6144 МБ, 8 ГБ = 8192 МБ.
- Официальный лаунчер Minecraft: Installations → … → Edit → More Options → JVM Arguments. Найди -Xmx2G и замени число (например на -Xmx4G).
- Modrinth App: Settings → Java → Maximum memory. Ползунок в гигабайтах — просто перетащи.
- CurseForge: Settings → Minecraft → Allocated Memory. Ползунок, аналогично Modrinth.
Что такое -Xms и надо ли его менять?
-Xms — стартовый размер кучи, с которого Java начинает работу. Дефолт обычно 256–512 МБ. Если -Xms сильно ниже -Xmx, Java будет постепенно расширять кучу по мере нагрузки — это лишние паузы при старте.
Практика для Minecraft: ставь -Xms примерно в половину от -Xmx. Например, -Xms2G -Xmx4G. Тогда Java стартует сразу с разумным запасом и реже устраивает паузы GC во время игры.
Помогают ли дополнительные JVM-флаги — или достаточно просто добавить RAM?
Флаги оптимизации часто важнее, чем просто накинуть RAM. Официальный лаунчер уже добавляет часть из них автоматически. Самый проверенный набор для модпаков — Aikar's Flags, которые разрабатывались специально под Minecraft-серверы:
- -XX:+UseG1GC — включает сборщик мусора G1, оптимальный для Minecraft
- -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 — балансирует молодое и резервное поколения объектов
- -XX:MaxGCPauseMillis=50 — ограничивает паузы GC до ~50 мс (меньше фризов)
- -XX:G1HeapRegionSize=32M — укрупняет регионы кучи под большие объекты (удобно для модпаков)
- -XX:+UnlockExperimentalVMOptions — разрешает экспериментальные параметры JVM
Флаги не заменяют правильный Xmx — их имеет смысл добавлять уже после того, как ты выставил достаточно RAM. Вставить их можно в то же поле JVM Arguments в лаунчере.
Проверь и другие причины: не только мало RAM
Иногда OutOfMemoryError появляется даже при 8 ГБ выделенных. Вот что ещё стоит проверить:
- 32-битная Java: x86-JRE не может использовать больше ~1,2 ГБ, даже если прописать -Xmx4G. Скачай 64-битную Java (OpenJDK 21 или Adoptium).
- Утечка памяти в одном из модов: откат проблемного мода или обновление до фикс-версии.
- Слишком высокая дистанция прогрузки мира: в настройках сервера/клиента снизь render distance до 8–10 чанков.
- Memory Leak Fix (мод на Modrinth) — патчит часть известных утечек на стороне ванили и некоторых модов.
FAQ
Можно ли выделить больше RAM, чем физически установлено?
Нет. Java возьмёт память из физической ОЗУ. Если указать -Xmx больше, чем доступно (за вычетом ОС и других программ), Java либо не запустится с ошибкой «Could not create the Java Virtual Machine», либо система уйдёт в своп (файл подкачки) — и Minecraft будет лагать ещё сильнее.
Выделил 8 ГБ, но фризы всё равно есть — почему?
Скорее всего дело в GC-паузах. Попробуй добавить Aikar's Flags (описаны выше) или поставить мод Spark — он покажет профиль нагрузки и поможет найти виновника фризов.
Java говорит «Invalid initial heap size» при запуске — что делать?
Это значит, что -Xms больше -Xmx, или значение написано с ошибкой. Суффикс обязателен: G — гигабайты, M — мегабайты, пробела между числом и буквой нет. Правильно: -Xmx4G. Неправильно: -Xmx 4G или -Xmx4.
Нужно ли обновлять Java для Minecraft 1.21+?
Для Minecraft 1.21 требуется Java 21 или новее. Старые Java 8 и 17 новые версии игры не запустят, а для некоторых модпаков есть свои требования — смотри описание пака. Prism Launcher и Modrinth App скачивают нужную Java автоматически.




