我的Eclipse由于內(nèi)存溢出而自動(dòng)退出。我的Eclipse配置文件:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
-XX:MaxPermSize=256M
-XX:PermSize=256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
我擴(kuò)大了MaxPermSize到1024M:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
-XX:MaxPermSize=1024M
-XX:PermSize=1024M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
仍然報(bào)內(nèi)存溢出的錯(cuò)誤。好像修改的沒有起作用。查了資料發(fā)現(xiàn)只有-vmargs下面的參數(shù)才會對JVM起作用。然后我在-vmargs下面設(shè)置MaxPermSize。
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
-XX:MaxPermSize=256M
-XX:PermSize=256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=256M
現(xiàn)在Eclipse啟動(dòng)報(bào)錯(cuò):‘JVM terminated. Exit code=-1’. 把-Xmx512m 改為-Xmx256m,
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
-XX:MaxPermSize=256M
-XX:PermSize=256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx256m
-XX:PermSize=128M
-XX:MaxPermSize=256M
Eclipse可以正常啟動(dòng),也沒有內(nèi)存溢出的錯(cuò)誤。我測試了一下,如果把-Xmx設(shè)置為444, 能正常啟動(dòng),如果大于444,就起不起來了。
原因參考http://blog.csdn.net/liuzhenwen/archive/2008/12/21/3572727.aspx。
為什么有的機(jī)器將-Xmx和-XX:MaxPermSize都設(shè)置為512M之后Eclipse可以啟動(dòng),而有些機(jī)器無法啟動(dòng)?
JVM內(nèi)存包含兩種:堆內(nèi)存和非堆內(nèi)存,另外JVM最大內(nèi)存首先取決于實(shí)際的物理內(nèi)存和操作系統(tǒng)。所以說設(shè)置VM參數(shù)導(dǎo)致程序無法啟動(dòng)主要有以下幾種原因:
1) 參數(shù)中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2)-Xmx的值和-XX:MaxPermSize的總和超過了JVM內(nèi)存的最大限制,比如當(dāng)前操作系統(tǒng)最大內(nèi)存限制,或者實(shí)際的物理內(nèi)存等等。說到實(shí)際物理內(nèi)存這里需要說明一點(diǎn)的是,如果你的內(nèi)存是1024MB,但實(shí)際系統(tǒng)中用到的并不可能是1024MB,因?yàn)橛幸徊糠直挥布加昧恕?/p>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。