我的Eclipse由于内存溢出而自动退出。我的Eclipse配置文件: -showsplash org.eclipse.platform --launcher.XXMaxPermSize -XX:MaxPermSize=256M -XX:PermSize=256M -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m 我扩大了MaxPermSize到1024M: -showsplash org.eclipse.platform --launcher.XXMaxPermSize -XX:MaxPermSize=1024M -XX:PermSize=1024M -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m 仍然报内存溢出的错误。好像修改的没有起作用。查了资料发现只有-vmargs下面的参数才会对JVM起作用。然后我在-vmargs下面设置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 现在Eclipse启动报错:‘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可以正常启动,也没有内存溢出的错误。我测试了一下,如果把-Xmx设置为444, 能正常启动,如果大于444,就起不起来了。 原因参考http://blog.csdn.net/liuzhenwen/archive/2008/12/21/3572727.aspx。 为什么有的机器将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
|
|