我的Eclipse由于内存溢出而自动退出。我的Eclipse配置文件:-showsplashorg.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。-showsplashorg.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=256MEclipse可以正常启动,也没有内存溢出的错误。我测试了一下,如果把-Xmx设置为444, 能正常启动,如果大于444,就起不起来了。原因参考http://blog.csdn.net/liuzhenwen/archive/2008/12/21/3572727.aspx。
为什么有的机器将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2)-Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。
正确的配置
-Xms384m -Xmx384m
猜你喜欢
静态const保留字,是一个类型修饰符,使用const声明的对象不能更新。与final某些类似。
2019-01-16
跳转goto保留关键字,但无任何作用。结构化程序设计完全不需要goto语句即可完成各种流程,而goto语句的使用往往会使程序的可读性降低,所以Java不允许goto跳转。
2019-01-16
无返回值void关键字表示null类型。void可以用作方法的返回类型,以指示该方法不返回值。
2019-01-16
本类this关键字用于引用当前实例。当引用可能不明确时,可以使用this关键字来引用当前的实例。
2019-01-16
父类,超类super关键字用于引用使用该关键字的类的超类。作为独立语句出现的super表示调用超类的构造方法。super.()表示调用超类的
2019-01-16