Najprej imam škatlo z 8 gb ram, zato dvomim, da je težava v skupnem pomnilniku. Ta aplikacija deluje dobro na računalnikih s 6 GB ali manj.
Poskušam rezervirati 3 GB prostora z uporabo -Xmx3G pod "VM Arguments" v Run Configurations v Eclipse.
Vsakič, ko poskušam rezervirati več kot 1500mb, se pojavi ta napaka: "Error occurred during initialization of VM; Could not reserve enough space for object heap" ob uporabi -Xmx3G
Kaj se tu dogaja?
To pravzaprav ni specifično vprašanje za Eclipse; gre za splošno Java-on-Windows. Vzrok je v tem, kako JVM dodeljuje pomnilnik na Windows; vztraja pri dodelitvi neprekinjenega dela pomnilnika, kar ki ga Windows pogosto ne more zagotoviti, tudi če je na voljo dovolj ločenih kosov za da bi zadostili zahtevi za dodelitev. Obstajajo pripomočki, ki poskušajo pomagati sistemu Windows "defragmentirati" njegov pomnilnik, kar bi teoretično pomagalo v tej situaciji; vendar tega še nisem preizkusil. resno preizkusil, zato ne morem govoriti o njihovi učinkovitosti. Včasih sem slišal, da bi lahko pomagalo, če ponovno zaženete Windows in pred zagonom drugih aplikacij zaženite aplikacijo Java, ki potrebuje veliko količino pomnilnika. Če imate srečo, Windows ne bo razdrobil svojega pomnilniškega prostora in Java bo dobila celovit blok, ki ga zahteva.
Nekje na medmrežju je na voljo več tehničnih razlag in analize tega vprašanja, vendar nimam pri roki nobenih referenc.
Sem pa našel tole, kar je videti koristno: https://stackoverflow.com/a/497757/639520
Prepričajte se, da Eclipse dejansko uporablja isti JVM, za katerega mislite, da ga uporabljate. Če kdaj uporabljate javo v spletnem brskalniku, imate verjetno naokoli tudi 32-bitno različico, ki ima morda prednost, če je bila v zadnjem času nameščena ali posodobljena.
Da bi bili popolnoma prepričani, priporočam, da v datoteko eclipse.ini
na vrh dodate ti dve vrstici:
-vm
C:/Java/jdk1.6.0_27/bin
...kjer je na mojem računalniku C:/Java/jdk1.6.0_27/bin
, kjer se nahaja JVM, za katerega vem, da je 64-bitni. Prepričajte se, da je tam tudi mapa bin
.
(Kot bonus vam to v operacijskem sistemu Windows 7 omogoča tudi, da dejansko pripnete zavihek, zato sem moral to storiti za lastno uporabo).