增加 Eclipse 的 JVM 最大堆大小

Posted

技术标签:

【中文标题】增加 Eclipse 的 JVM 最大堆大小【英文标题】:Increase JVM max heap size for Eclipse 【发布时间】:2013-01-01 05:16:01 【问题描述】:

我正在尝试增加我的 Eclipse 的最大堆大小。我尝试在eclipse.ini 或通过命令行指定,但没有工作。

我的最大堆大小在启动 Eclipse 之前(运行 jconsole)和之后(System.out.println(java.lang.Runtime.getRuntime().maxMemory());)具有完全相同的限制。 1.8G

    有什么方法可以在启动之前修改 JVM 堆大小(例如配置文件?) 为 Eclipse 指定堆大小时我会做错什么?

这是命令:

./eclipse/eclipse -debug -consoleLog -vmargs -Xms1000m -Xmx6000m -XX:-UseGCOverheadLimitcl

这是我的eclipse.ini(这些值被指定的eclipse启动参数覆盖):

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Dhelp.lucene.tokenizer=standard
-XX:MaxPermSize=6000m
-Xms1000m
-Xmx6000m

【问题讨论】:

【参考方案1】:

可以使用命令行选项增加 Java 虚拟机 (JVM) 分配的堆大小。

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

如果您使用的是 tomcat 服务器,您可以通过转到 Eclipse/Run/Run Configuration 并选择 Apache Tomcat/your_server_name/Arguments 并在 VM arguments 部分下使用以下内容来更改堆大小:

-XX:MaxPermSize=256m
-Xms256m -Xmx512M

如果您不使用任何服务器,则可以在运行代码之前在命令行中键入以下内容:

java -Xms64m -Xmx256m HelloWorld

更多关于增加堆大小的信息可以找到here

【讨论】:

这是迄今为止唯一对我有用的东西,也就是说,在 eclipse 中的每个运行时指定 Xmx 等参数。我在我的笔记本电脑上以伪分布式模式运行我自己的 hadoop、mahout 等程序。 我知道它已经有两年的历史了,但令人困惑的是,这个答案有这么多的赞成票。它没有回答这个问题,这是专门关于 Eclipse 的,并且已经显示了对从命令行设置堆大小的理解。 Tomcat和什么有什么关系? @MartinMcCallion 它有如此多的赞成票,因为当人们在谷歌上搜索“增加 jvm ECLIPSE”之类的东西时,这是出现的主题之一......对于使用 tomcat 和 eclipse 的日常开发人员来说是有用的信息。 还有其他方法可以在eclipse中编辑堆大小(来自属性)【参考方案2】:

你可以使用这个配置:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

【讨论】:

它实际上也帮助并缩短了我的启动时间! eclipse 启动,应用运行/调试现在更快。谢谢。 @Vrajesh 我在哪里放置此代码? eclipse > 配置 > config.ini 还有其他方法可以在eclipse中编辑堆大小(来自属性) @JustCode007 您使用的是哪个版本?我使用 Eclipse Luna Path:-> c:\program files\eclipse\eclipse.ini 它基于 .ini 文件的 eclipse 版本【参考方案3】:

尝试修改eclipse.ini,使XmsXmx 具有相同的值:

-Xms6000m
-Xmx6000m

这应该强制 Eclipse 的 VM 从一开始就分配 6GB 的堆。

但请注意使用eclipse.ini 或命令行./eclipse/eclipse -vmargs ...。它应该在这两种情况下都有效,但选择一种并尝试坚持下去。

【讨论】:

我尝试只运行 ./eclipse/eclipse -debug -consoleLog,并修改了 eclipse.ini。不工作。我不得不说我是用户 inigo,但我以 sudo 身份运行此命令。如果我以 inigo 的身份进行操作,我会遇到依赖问题。 如何检查堆大小。你能用jstat -gccapacity吗?您还可以启用日志记录-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log 以查看最终传递到 VM 中的参数。【参考方案4】:

--launcher.XXMaxPermSize

256m

试着提高这个价值!

【讨论】:

以上是关于增加 Eclipse 的 JVM 最大堆大小的主要内容,如果未能解决你的问题,请参考以下文章

32 位和 64 位 Windows 服务器上 JVM 的最大堆大小

增加 ECS 容器的最大堆大小

JVM优化

JVM启动参数

如何指定 JVM 最大堆大小“-Xmx”以在 SBT 中运行具有“运行”操作的应用程序?

关于android中最大堆大小和可用内存的两个问题