Pirmkārt, Man ir kaste ar 8 gb ram, tāpēc es šaubos, kopējā atmiņa ir problēma. Šī lietojumprogramma darbojas labi uz datoriem ar 6 gb vai mazāk.
Es mēģinu rezervēt 3 GB vietas, izmantojot -Xmx3G zem "VM Arguments" Eclipse programmas Run Configurations sadaļā.
Katru reizi, kad mēģinu rezervēt vairāk nekā 1500mb, parādās šāda kļūda: "VM inicializācijas laikā radās kļūda; Nevarēja rezervēt pietiekami daudz vietas objektu kaudzītei", izmantojot -Xmx3G.
Kas šeit notiek?
Šī patiesībā nav tikai Eclipse specifiska problēma; tā ir vispārēja problēma. Java-on-Windows problēma. Tas ir saistīts ar to, kā JVM piešķir atmiņu sistēmā Windows; tas uzstāj uz to, lai tiktu piešķirts nepārtraukts atmiņas gabals, kas nav viengabalains. bieži vien Windows nevar nodrošināt, pat ja ir pietiekami daudz atsevišķu gabalu, lai lai apmierinātu piešķīruma pieprasījumu. Ir utilīti, kas mēģina palīdzēt Windows "defragmentēt" atmiņu, kas teorētiski varētu palīdzēt šajā situācijā, bet es neesmu mēģinājis to darīt. nopietni, tāpēc nevaru izteikties par to efektivitāti. Dažreiz esmu dzirdējis, ka viena lieta, kas varētu palīdzēt, ir Windows pārstartēšana. un pirms citu lietotņu palaišanas palaist Java lietotni, kurai nepieciešama operētājsistēma. lielam atmiņas gabalam. Ja jums paveicas, Windows nebūs sadrumstalojis savu programmatūru. atmiņas vieta vēl nav fragmentēta, un Java saņems viengabalainu bloku, ko tā pieprasa.
Kaut kur tīmeklī ir vairāk tehnisku paskaidrojumu un šīs problēmas analīze, bet man nav pa rokai nekādas atsauces.
Es tomēr atradu šo, kas izskatās noderīgs: https://stackoverflow.com/a/497757/639520.
Pārliecinieties, ka Eclipse patiešām darbojas tas pats JVM, ko jūs domājat, ka tas darbojas. Ja jūs kādreiz izmantojat java tīmekļa pārlūkprogrammā, iespējams, ka jums ir arī 32 bitu versija, kas var būt prioritāra, ja tā ir instalēta vai atjaunināta pēdējā laikā.
Lai būtu pilnīgi pārliecināts, es iesaku pievienot šīs divas rindiņas jūsu eclipse.ini
faila augšpusē:
-vm
C:/Java/jdk1.6.0_27/bin
...kur manā datorā atrodas C:/Java/jdk1.6.0_27/bin
, kur, kā man zināms, atrodas 64 bitu JVM. Pārliecinieties, ka tur ir bin
mape.
(Kā bonusu, Windows 7 operētājsistēmā tas ļauj arī faktiski "piespraust cilni", tāpēc man tas bija jādara manis paša vajadzībām).