增加 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
,使Xms
和Xmx
具有相同的值:
-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 的最大堆大小