Kon niet genoeg ruimte reserveren voor objecthoop

Ik krijg de volgende uitzondering herhaaldelijk elke keer dat ik het programma probeer uit te voeren.

Fout opgetreden tijdens initialisatie van VM

Kon niet genoeg ruimte reserveren voor objecthoop

Kan de Java virtual machine niet maken.

Ik heb geprobeerd mijn virtueel geheugen (paginagrootte) en RAM te vergroten, maar het mocht niet baten.

Hoe kan ik deze fout verhelpen?


Antwoord 1, autoriteit 100%

Voer de JVM uit met -XX:MaxHeapSize=512m(of een willekeurig groot getal als je nodig hebt) (of kortweg -Xmx512M)


Antwoord 2, autoriteit 59%

Dit kan ook worden veroorzaakt door iets te groot in te stellen op een 32-bits HotSpot-vm, bijvoorbeeld:

-Xms1536m -Xmx1536m

waar dit zou kunnen/zouwerken:

-Xms1336m -Xmx1336m

Antwoord 3, autoriteit 22%

hier is hoe het te repareren:

  • Ga naar Start->Configuratiescherm->System->Advanced(tab)->Omgevingsvariabelen->Systeem

    Variabelen->Nieuw: Variabelenaam: _JAVA_OPTIONS
    Variabele waarde: -Xmx512M
    Variabelenaam: Path
    Variabele waarde: %PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;

Verander dit in uw juiste pad.


Antwoord 4, autoriteit 22%

Ik kwam dit tegen bij het gebruik van javac, en het lijkt niet op te gaan in de opdrachtregelopties,

-bash-3.2$ javac -Xmx256M HelloWorldApp.java 
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Dus de oplossing hier het zo instellen _java_options

-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java 
Picked up _JAVA_OPTIONS: -Xmx256M

en dit compileert prima.

Dit gebeurt met mij op machines met veel ram, maar met lagere geheugen Ulimits. Java besluit een grote hoop toe te wijzen omdat het de RAM in de machine detecteert, maar het is niet toegestaan ​​om het toe te wijzen vanwege Ulimits.


Antwoord 5, Autoriteit 19%

32-bit Java vereist een aangrenzende vrije ruimte in het geheugen om te rennen. Als u een grote heapgrootte opgeeft, is er mogelijk niet zoveel aangrenzende vrije ruimte in het geheugen, zelfs als u veel meer vrije ruimte beschikbaar hebt dan nodig.

Installeren van een 64-bits versie van Java helpt in deze gevallen de aaneengesloten geheugenvereisten alleen van toepassing op 32-bits Java.


Antwoord 6, Autoriteit 14%

GECOMBINEERD MET -XMX512M GEBRUIK –D64 Om ervoor te zorgen dat u 64-bits VM gebruikt. Op een 64-bits machine dacht ik er zeker van dat ik 64-bits virtuele machine draaide, maar nee. Na het installeren van 64-bit Java maakt de -d64 optie-werken en -xmx veel grotere geheugenformaten mogelijk.

java -d64 -Xmx512M mypackage.Test

Antwoord 7, Autoriteit 6%

Ik heb dezelfde foutmelding en loste dit op door deze in de run.conf.bat

te configureren

Voer de JVM uit met de configuratie run.conf.bat in JBOSS5X

Als het vrije geheugen niet beschikbaar is als u doorgaat in de verklaring, neem dan wijzigingen in Run.Conf.bat

set "JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxPermSize=256m"

Antwoord 8, Autoriteit 5%

Open het bestand gradle.properties in de Android-map.

Vervang deze regel:

org.gradle.jvmargs=-Xmx1536M

met:

org.gradle.jvmargs=-Xmx512m

Uitleg:
Max. limiet van Gradle-document:

Als de gevraagde bouwomgeving geen maximale heapgrootte specificeert, gebruikt de Daemon maximaal 512 MB aan heap.


Antwoord 9, autoriteit 3%

Ik had soortgelijke problemen. Ik had een 32-bits versie van Java geïnstalleerd op een 64-bits machine.

Door die versie te verwijderen en de 64-bits versie van Java te installeren. Ik heb het probleem kunnen oplossen.


Antwoord 10, autoriteit 3%

Ik weet dat er hier al veel antwoorden zijn, maar geen enkele heeft me geholpen. Uiteindelijk heb ik het bestand /etc/elasticsearch/jvm.optionsgeopend en gewijzigd:

-Xms2G
-Xmx2G

naar

-Xms256M
-Xmx256M

Dat heeft het voor mij opgelost. Hopelijk helpt dit iemand anders hier.


Antwoord 11, autoriteit 3%

Stel dat je klas Testheet in pakket mypackage. Voer uw code als volgt uit:

java -Xmx1024m mypackage.Test

Hiermee wordt 1024 MB aan heapruimte gereserveerd voor uw code. Als u 512 MB wilt, kunt u het volgende gebruiken:

java -Xmx512m mypackage.Test

Gebruik een kleine m in 1024m, 512m, enz.


Antwoord 12, autoriteit 3%

Soms geeft deze fout aan dat het fysieke geheugen en de swap op de server daadwerkelijk volledig worden gebruikt!

Ik zag dit probleem onlangs op een server met RedHat Enterprise Linux 5.7 met 48 GB RAM. Ik ontdekte dat zelfs gewoon hardlopen

java -version

veroorzaakte dezelfde fout, waaruit bleek dat het probleem niet specifiek was voor mijn toepassing.

Hardlopen

cat /proc/meminfo

meldde dat MemFree en SwapFree beide ruim onder de 1% van respectievelijk de MemTotal- en SwapTotal-waarden lagen:

MemTotal:     49300620 kB
MemFree:        146376 kB
...
SwapTotal:     4192956 kB
SwapFree:         1364 kB

Het stoppen van een paar andere actieve applicaties op de machine bracht de cijfers voor vrij geheugen enigszins omhoog:

MemTotal:     49300620 kB
MemFree:       2908664 kB
...
SwapTotal:     4192956 kB
SwapFree:      1016052 kB

Op dit punt zou een nieuw Java-exemplaar goed opstarten en kon ik mijn applicatie uitvoeren.

(Uiteraard was dit voor mij slechts een tijdelijke oplossing; ik heb nog steeds een uitstekende taak om de processen die op die machine worden uitgevoerd grondiger te onderzoeken om te zien of er iets is dat kan worden gedaan om het nominale geheugengebruik te verminderen niveaus, zonder toevlucht te hoeven nemen tot het stoppen van applicaties.)


Antwoord 13, autoriteit 3%

Fout:

Voor de fout “fout opgetreden tijdens initialisatie van vm kon niet genoeg ruimte reserveren voor object heap jboss”

Hoofdoorzaak:

  • Onjuiste / onvoldoende geheugentoewijzing aan onze JVM zoals hieronder vermeld.

  • E.G. Java_opts = “- XMS1303M -XMX1303M -XX: MAXPERMSIZE = 256m” in JBoss-EAP-6.2 \ bin \ standalone.conf of “Java_opts = -xms1g -xmx1g -xx: maxpermize = 256m “in JBoss-EAP-6.2 \ bin \ standalone.conf.bat die niets anders is dan JVM-geheugentoewijzingspoolparameters.

Resolutie:

  • Verhoog de heapgrootte. Om de heapgrootte te verhogen,
  • GOTO – & GT; JBOSS-EAP-6.2 \ BIN \ STANDALONE.CONF.BAT OF JBOSS-EAP-6.2 \ BIN \ STANDALONE.CONF
  • Wijziging – & GT; Java_opts = “- XMS256M -XMX512M -XX: MAXPERMSIZE = 256M” waarbij -XMS is minimale heap-maat en -xMX is maximale heap-maat.
  • Meestal is het niet aanbevolen om dezelfde grootte te hebben voor MIN en MAX.

  • Als u uw aanvraag uitvoert van Eclipse,

  • Dubbelklik op de server
  • Selecteer ‘Open Startconfiguratie’ die u wordt omgeleid naar het venster “EDIT LARING-configuratie-eigenschappen”.
  • in deze Wontown goto op het tabblad ‘(x) = argumenten’.
  • in VM-argumenten, definieer uw heapgrootte zoals hieronder vermeld
  • “- DPROGRAM.NAME = JBOSStools: JBOSS EAP 6.1+ Runtime Server” -Server -xms256M -XMX512M -XX: MAXPERMSIZE = 256M -Dorg.jboss.resolver.warning = TRUE

Antwoord 14

Ik heb onlangs geconfronteerd met dit probleem. Ik heb 3 Java-toepassingen die beginnen met 1024m of 1280 m heap grootte.
Java kijkt naar de beschikbare ruimte in Swap en als er niet genoeg beschikbaar is, wordt de JVM-uitgangen.

Om het probleem op te lossen, moest ik verschillende programma’s beëindigen die een grote hoeveelheid virtueel geheugen hadden toegewezen.

Ik draaide op x86-64 Linux met een 64-bit JVM.


Antwoord 15

Als u 32bit JVM draait, verandert u de hoopgrootte op kleiner, zou waarschijnlijk helpen. U kunt dit doen door Args door te geven naar Java rechtstreeks of via milieuvariabelen zoals het volgende,

java -Xms128M -Xmx512M
JAVA_OPTS="-Xms128M -Xmx512M"

Voor 64bit JVM, grotere hoopgrootte zoals -Xms512M -Xmx1536Mmoet werken.

Uitvoeren java -versionof java -d32, java--d64VOOR JAVA7 OM TE BEKIJKEN welke versie u loopt.


Antwoord 16

Ik had de juiste hoeveelheid geheugeninstellingen, maar voor mij gebruikte het een 64bit Intellij met 32-bits JVM. Zodra ik stapte naar 64 bit VM, was de fout verdwenen.


Antwoord 17

Aangenomen dat u voldoende gratis geheugen hebt en u JVM-argumenten correct instelt, heeft u mogelijk een probleem van geheugenfragmentatie. Controle Java Maximum geheugen op Windows XP .


Antwoord 18

Hoe dan ook, hier is hoe het te repareren:
Ga naar Start- & GT; Configuratiescherm- & GT; System- & GT; Geavanceerd (Tab) – & GT; Milieu Variabelen- & GT; Systeemvariabelen- & GT; Nieuw:
Variabele naam: _java_options
Variabele waarde: -xmx512m

of

Wijzig de mieroproep zoals hieronder weergegeven.

  <exec
        **<arg value="-J-Xmx512m" />**
    </exec>

het werkte voor mij.


Antwoord 19

Er is een fout opgetreden tijdens de initialisatie van VM
Kon niet genoeg ruimte voor 1572864kb-objecthoop reserveren

Ik heb de waarde van het geheugen gewijzigd in Instellingen.gradebestand
1536 tot 512 en het hielp


Antwoord 20

Ga naar Start- & GT; Configuratiescherm- & GT; System- & GT; Geavanceerd (Tab) – & GT; Milieu Variabelen- & GT; Systeemvariabelen- & GT; NIEUW:

Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M

Antwoord 21

Als je een java-programma gebruikt:
– voer je programma uit in een terminal met het juiste commando voor linux, het zou ‘java -jar myprogram.jar’ zijn en voeg -Xms256m -Xmx512m toe, bijvoorbeeld: ‘java -jar myprogram.jar Xms256m -Xmx512m’

Als je een .sh-script (linux, mac?) of een .bat-script (windows) gebruikt, open het script en zoek naar de java-opties als ze aanwezig zijn en vergroot het geheugen.

Als al het bovenstaande niet werkt, controleer dan uw processen (ctrl+alt+delete op windows) (ps aux op linux/mac) en stop de processen die veel geheugen gebruiken en niet nodig zijn voor uw besturingssysteem ! => Probeer uw programma opnieuw uit te voeren.


Antwoord 22

In CASSANDRA_HOME/bin/cassandra.bat vindt u de volgende configuratie

REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
 -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^
 -Xms**2G**^
 -Xmx**2G**^

U kunt 2G terugbrengen tot een kleiner aantal voor b.v. 1G of zelfs minder en het zou moeten werken.

Hetzelfde als je op unix box draait, verander het .sh-bestand op de juiste manier.


Antwoord 23

Ik kreeg dezelfde fout en het werd opgelost toen ik tijdelijke bestanden verwijderde met %temp% en eclipse opnieuw opstartte.


Antwoord 24

Soms heeft het betrekking op

$ sysctl vm.overcommit_memory
vm.overcommit_memory = 2

Als je het instelt op:

$ sysctl vm.overcommit_memory=0

Het zou moeten werken.


Antwoord 25

Vervang -Xmx2Gdoor -Xms512Mof een grotere geheugengrootte in het bestand cassandra.bat in de map cassandra bin.


Antwoord 26

Je hoeft niets te doen, verander gewoon het POM-bestand zoals hieronder

<configuration>
    <maxmemory>1024M</maxmemory>
</configuration>

Other episodes