如何为Eclipse分配超过512M的内存?

101

我有以下设定,但是当我把所有的512替换成1024并输入1024后,Eclipse根本无法启动。 我如何为我的Eclipse JVM获得超过512M的内存?

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
com.springsource.sts.ide
--launcher.XXMaxPermSize
512M
-vm
C:\Program Files (x86)\Java\jdk1.6.0_18\bin\javaw 
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx512m
-XX:MaxPermSize=512m

在尝试了这里的一个答案后,如何检查Eclipse占用了多少内存?(例如,您可能编辑了错误的eclipse.ini文件) - golimar
7个回答

123

我在尝试让Eclipse能够使用更多内存时遇到了很多问题(例如2到4GB之间)。

打开Eclipse安装目录下的eclipse.ini文件。你应该能够在-vmargs后修改内存大小,最大值取决于你的系统。这是我Linux系统上的那一节:

-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=512m
-Xms512m
-Xmx1024m

这是在我的Windows电脑上的那部分内容:

-vmargs
-Xms256m
-Xmx1024m

但是我尝试将它设置为高于1024兆字节,但失败了。如果有人知道如何使其工作,我很想知道。

编辑:Juno的32位版本似乎不接受大于Xmx1024m的值,而64位版本可以接受2048。

编辑:Nick的帖子包含一些很好的链接,解释了两个不同的问题:

  • 该问题在很大程度上取决于您的系统和可用的连续空闲内存量,以及
  • 通过使用javaw.exe(在Windows上),您可能能够获得更大的分配内存块。

我拥有8GB的RAM,即使加载了最少量的程序,Windows / Linux报告了4到5GB的可用RAM,但我无法将-Xmx设置为超过1024MB的RAM。


6
你要把这些信息放在哪里? - CodyBugstein
6
@Imray,您需要将以下设置添加(或替换)到您的 eclipse.ini 文件中。其位置取决于您的平台。对于 Windows,在 Eclipse 应用程序的同一文件夹中。对于 OS X,您需要在 Eclipse 应用程序上“显示包内容”,然后在文本编辑器中编辑 Contents/MacOS/eclipse.ini。不确定 Linux...留给读者自行探索? :-) - sherb
6
了解选项的含义是很有帮助的:在“-vmargs”之后的所有“-X”选项都会直接传递给JVM,因此运行“java -X”以获取文档。 “-Xms”设置初始堆大小,“-Xmx”设置堆可以增长的最大大小。 PermSize是存储类/方法对象的区域,与堆分开。 - jfritz42
请注意,在Java 8中不需要设置-XX:MaxPermSize=512m。请参见https://dev59.com/VWMl5IYBdhLWcg3wgnSl。 - Paul Jansen
1
以下是 Eclipse 在 Linux 或 Ubuntu 中的配置文件 elcipse.ini 的位置 https://dev59.com/tGoy5IYBdhLWcg3wo_gn#14898134 - Vlad
在Linux上,可以使用命令“cd / && sudo find | grep“ eclipse.ini””找到“eclipse.ini”。 - Fish11

38

以下是我如何增加Eclipse Juno的内存分配:

enter image description here

我的系统总共有4GB内存,当我使用Eclipse时,我不会同时运行其他占用大量内存的软件。因此,我将为Eclipse分配2GB内存。

我注意到的一点是,最小值和最大值之间的差值应该为512。下一个值应该是,例如2048min + 512 = 2560max

这是在设置-Xms2048m -Xmx2560m后Eclipse内部堆栈的值:

enter image description here


请注意 - 不要忘记小写的 m (就像我一样)。否则工作得很好! - Ben
这个主题是为 Eclipse 配色而设计的吗? - wawanopoulos
3
我正在使用 Carboon 颜色主题,你可以在这里下载:链接 - Ibn Saeed

6

4

我认为您不需要将MaxPermSize更改为1024m。下面是我的建议:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms256m
-Xmx1024m
-XX:PermSize=64m
-XX:MaxPermSize=128m

8
嗯...我们能否在踩的同时得到一些评论呢?我的回答可能不正确,但知道原因会对我有所帮助。 - elduff

4
你可以将以下内容复制到你的eclipse.ini文件中,这样设置可以让Eclipse使用1024M内存:
-clean -showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms512m
-Xmx1024m
-XX:PermSize=128m
-XX:MaxPermSize=256m 

2

以下是我使用的配置,适用于Eclipse Java Photon June 2018: -vmargs -Xms1536m -Xmx2048m -XX:MaxPermSize=1024m

我的电脑运行Windows 10系统,内存为8 GB,64位。如果你的电脑内存较好,你可以将-Xmx2048和-XX:MaxpermSize=1024m扩展到4096m。我的电脑运行良好。


1
在使用基于Eclipse的STS(Spring Tool Suite)进行企业项目开发时,我经常遇到崩溃问题,且STS的内存使用量会稳定地达到1GB。我无法将新的.war文件添加到本地的Tomcat服务器中,并且在删除Tomcat文件夹以重新添加它后,发现我也无法重新添加它。实际上,除了主菜单之外,几乎任何需要弹出新窗口的操作都会导致STS冻结。

我编辑了STS.ini文件(您的Eclipse.ini可以进行类似配置):

--launcher.XXMaxPermSize 1024M -vmargs -Xms1536m -Xmx2048m -XX:MaxPermSize=1024m

重新启动STS后,立即看到其在约1.5 GB处停滞不前,最终没有崩溃。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接