Minecraft Java Heap Space OutOfMemoryError: Los crashes veilig op
Als Minecraft Java Edition afsluit met de foutmelding java.lang.OutOfMemoryError: Java heap space , heeft het spel de maximaal toegestane heapgrootte voor het Java-proces bereikt. Controleer de huidige -Xmxwaarde, verhoog deze alleen als uw computer of server voldoende beschikbaar geheugen heeft en verlaag de werkbelasting als de crash zich blijft voordoen. Het blindelings toewijzen van meer RAM kan een ander geheugenprobleem veroorzaken of ervoor zorgen dat er te weinig geheugen overblijft voor het besturingssysteem.
Wat betekent "Java heap space"?
De Java-heap is de geheugenpool die de Java Virtual Machine (JVM) gebruikt voor objecten die worden aangemaakt tijdens het draaien van Minecraft. De JVM-optie -Xmxstelt de maximale grootte van de heap in; -Xmsde initiële grootte wordt ingesteld. Deze waarden zijn bovengrenzen en startpunten voor het Java-proces, geen garantie dat er altijd evenveel fysiek RAM-geheugen beschikbaar is voor Minecraft.
Dit bericht is anders dan een computer die geen RAM-geheugen meer heeft, een hostingpaneel dat een proces beëindigt, een grafische geheugenfout of een serverwaarschuwing met de tekst "Kan het niet bijbenen!". Deze problemen kunnen tijdens het spelen op elkaar lijken, maar een aanpassing -Xmxlost ze niet per se op. De huidige ondersteuningsrichtlijnen van Minecraft geven aan dat een mismatch in de geheugentoewijzing kan bijdragen aan crashes, lag en haperingen, en verwijzen Java Edition-spelers naar de JVM-argumenten van de Launcher. Lees de handleiding voor het oplossen van problemen met geheugentoewijzing in Minecraft .
Controleer de fout voordat u de instellingen wijzigt.
- Zoek de exacte regel
java.lang.OutOfMemoryError: Java heap spacein het crashrapport latest.logof de serverconsole.
- Noteer of dit gebeurt in één wereld, na het verkennen van nieuw terrein, met een modpack, of alleen wanneer meerdere spelers online zijn.
- Als het proces verdwijnt zonder een Java-heapfout, controleer dan het besturingssysteem of het hostingpaneel op een 'out-of-memory kill'. De geheugenlimiet van een host kan lager zijn dan de geconfigureerde heap van de server plus het geheugen dat Java buiten de heap nodig heeft.
- Maak een back-up van je singleplayer-wereld of serverwereld voordat je mods, loaders of serverbestanden wijzigt.
Herhaaldelijk vastlopen of haperen kan wijzen op geheugenproblemen, maar dat bewijst niet dat de Java-heap vol is. Beschouw het crashrapport of het hostlogboek als doorslaggevend bewijs.
Stap 1: Stel een geschikte heapgrootte in voor de client.
- Open de Minecraft Launcher en ga naar Installaties .
- Bewerk het profiel dat je daadwerkelijk gebruikt, open vervolgens Meer opties en zoek naar JVM-argumenten . De lay-out van de launcher kan veranderen; raadpleeg de instructies van de Minecraft-ondersteuning als de labels afwijken.
- Zoek de bestaande
-Xmxinstelling op. Wijzig die waarde in plaats van een tweede argument toe te voegen -Xmxof het hele argumentveld te vervangen.
- Sla het profiel op, start Minecraft en controleer of dezelfde wereld of activiteit de fout nog steeds veroorzaakt.
Stelt bijvoorbeeld -Xmx4Geen maximale heap van 4 GB in. Dit is slechts een voorbeeld, geen algemene aanbeveling. Een standaardinstallatie heeft mogelijk minder geheugen nodig dan een groot modpack, terwijl de beheerder van een modpack een specifiek geheugenbereik kan publiceren. Verhoog het maximum alleen in afgemeten stappen als de computer daar voldoende ruimte voor heeft. Laat geheugen over voor het besturingssysteem, de launcher, spraakchat, browsers en Java's niet-heapgerelateerde processen.
Volgens de door Mojang gepubliceerde systeemvereisten wordt 16 GB systeem-RAM aanbevolen; dit is het totale computergeheugen, niet een instructie om Minecraft een heap van 16 GB te geven. Wijs op een computer met minder geheugen niet bijna al het fysieke RAM-geheugen toe aan -Xmx. Als het spel al een redelijke heap gebruikt en de foutmelding naar één mod verwijst, test dan een compatibele, bijgewerkte modset voordat je de limiet opnieuw verhoogt.
Stap 2: Stem de Java-runtime af op de Minecraft-versie.
Gebruik de runtime die door de officiële launcher voor de gameversie wordt geleverd of geselecteerd, tenzij de Minecraft- of mod-loader-documentatie aangeeft dat je een andere ondersteunde runtime moet configureren. Een niet-overeenkomend of handmatig overschreven Java-uitvoerbaar bestand kan het oplossen van problemen bemoeilijken. Een versie-specifiek voorbeeld: in de release-opmerkingen van Mojang's Minecraft Java Edition 26.1 staat dat Java 25 vereist is; pas deze vereiste niet toe op elke oudere versie. Controleer de officiële release-opmerkingen van versie 26.1 en de vereisten voor de versie die je daadwerkelijk opstart.
Update Minecraft en de bijbehorende loader of mods via de officiële bronnen. Als de crash direct na een update is begonnen, test dan een kopie van de wereld met de laatst bekende compatibele modset in plaats van je enige wereld met een andere versie te openen.
Stap 3: Bepaal de grootte van de serverheap onder de werkelijke geheugenlimiet.
Voor een zelfgehoste Java-server moet u de opstartopdracht of het opstartscript bewerken (niet de standaardinstellingen) server.propertiesom de heap-opties in te stellen. Een klein voorbeeld van een opdracht is:
java -Xms2G -Xmx4G -jar server.jar nogui
Vervang dit server.jardoor de daadwerkelijke serverbestandsnaam en kies waarden die bij de host passen. -Xms2Gis de initiële heap in dit voorbeeld; -Xmx4Gis de maximale waarde. Het proces heeft ook geheugen buiten de Java-heap nodig, dus de totale geheugenlimiet van de host moet hoger zijn dan -Xmx. Controleer voor een beheerde host de limiet en opstartinstellingen van het abonnement in plaats van aan te nemen dat het weergegeven aantal spelers de geheugenbehoefte bepaalt.
In de handleiding voor probleemoplossing van Paper staat dat een server kan worden afgesloten wanneer de limiet van het hostingpaneel te dicht bij de limiet komt -Xmx; er wordt aangeraden om de limiet met 1-2 GB te verlagen als eerste diagnostische stap of om de host te vragen naar de limiet. Dit advies is van toepassing op een proces dat door de host wordt beëindigd, wat niet hetzelfde bericht is als een Java heap-space exception. Zie de documentatie voor probleemoplossing van servers van Paper .
Stap 4: Verminder de werkbelasting die het geheugen vult
- Verlaag de renderafstand: Probeer een kleinere weergaveafstand voor de client, vooral tijdens het verkennen of laden van een grote wereld.
- Lagere serverafstanden: Zie de Paper-review
view-distanceen simulation-distancede bijbehorende instellingen server.properties. Deze bepalen het bereik van de server voor het verzenden van chunks en de simulatie; verlaag ze geleidelijk en houd het spelverloop in de gaten. Zie de Paper-referentie voor servereigenschappen .
- Isoleer mods: Test tijdelijk een back-up zonder mods en herstel vervolgens compatibele mods in kleine groepen. Een crash die optreedt bij één groep mods verkleint de zoektocht. Ga er niet van uit dat elke prestatieverbeterende mod het Java-geheugengebruik vermindert.
- Controleer resource packs en shaders: Schakel resource packs of shaders met hoge resolutie tijdelijk uit tijdens de diagnose. Sommige grafische functies gebruiken de GPU of het eigen geheugen, waardoor meer Java-heap het probleem mogelijk niet oplost.
- Controleer de serverbelasting: Als de fout optreedt in een bepaald gebied of bij een piek in het aantal spelers, controleer dan de geladen chunks, entiteiten, plug-ins en de geheugengrafiek van de host. Verwijder of update een problematische plug-in pas nadat u de compatibiliteit ervan hebt gecontroleerd en een back-up van de wereld hebt gemaakt.
Stap 5: Houd de JVM-wijzigingen eenvoudig en controleer het resultaat.
Plak niet zomaar een lange reeks experimentele garbage-collection-vlaggen uit een oude handleiding als eerste oplossing. Moderne Java selecteert al een garbage collector en beheert het heapgedrag; vlaggen kunnen fysiek RAM-geheugen niet zichtbaar maken, en een andere collector kan geen geheugenlek of een hostlimiet herstellen. Oracle documenteert -Xmxde maximale heap-instelling en legt uit dat het afstemmen van garbage collection afhangt van de applicatie en het beschikbare geheugen. Zie de Java-opdrachtreferentie .
Na elke wijziging, start het spel of de server volledig opnieuw op en herhaal dezelfde activiteit. Wijzig één instelling tegelijk en noteer het resultaat. Als de exacte heapfout blijft bestaan met een conservatieve maar acceptabele maximumwaarde, sla dan het crashrapport op en zoek naar de eerste mod of Minecraft-klasse die in de stacktrace wordt genoemd. Als er geen Java heapfout is, onderzoek dan het besturingssysteem, de GPU, de launcher of het hostingpaneel in plaats van de waarde verder te verhogen -Xmx.
Veelgestelde vragen
Lost het toewijzen van meer RAM-geheugen de OutOfMemoryError van Minecraft altijd op?
Nee. Het verhogen van de geheugenlimiet -Xmxkan helpen als de Java-heaplimiet te laag is en de machine ongebruikt geheugen heeft. Het lost echter geen geheugenlek, een crash van het besturingssysteem, een hostingquotum of een probleem met het grafische geheugen op.
Moet ik -Xmsgelijkstellen aan -Xmx?
Niet automatisch. -XmsHiermee worden de initiële heap en -Xmxhet maximum ingesteld. Behoud de andere argumenten van de Launcher, tenzij je weet waarom ze moeten worden gewijzigd; Minecraft vereist niet dat elke speler deze waarden identiek maakt.
Waarom crasht een server, zelfs als -Xmxhet dataverbruik onder de limiet van het hostingpakket blijft?
Java gebruikt geheugen buiten de heap, en het besturingssysteem en andere services hebben ook RAM nodig. Controleer de daadwerkelijke proces- of containerlimiet van de host en de kill-logs. Vraag de provider om de beschikbare hoeveelheid geheugen te bevestigen als deze gegevens niet in het beheerscherm worden weergegeven.