我在ubuntu中使用eclipse EE,从eclipse网站下载.tar.gz文件并在我的主目录中解压缩。我在eclipse.ini中将-Xmx设置为3072m。这是:
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=256m
-Xms2048m
-Xmx3072m
但是当我试图通过
看到我的总记忆时Runtime.getRuntime().totalMemory()
返回62193664即59mb。我也尝试从终端设置vmagrs启动eclipse,但没有任何改变。我不知道发生了什么。如何设置堆大小?我的总ram是4gb,我使用64位Ubuntu和64bit eclipse。任何信息都对我很有帮助。
答案 0 :(得分:1)
简而言之,Runtime.getRuntime().totalMemory()
没用,它会返回一代GC的大小。
此主题有一个解释:http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html
答案 1 :(得分:1)
1)Runtime.getRuntime().totalMemory()
不返回允许的最大堆大小。
2)我不确定你是如何运行Runtime.getRuntime().totalMemory()
但我想你是在Java应用程序中从Eclipse中执行的。在这种情况下,您在另一个JVM中执行调用,该JVM不继承eclipse.ini
文件中的属性。如果要确定它的初始和最大堆大小,可以转到Run->Run Configurations...
。单击当前运行配置,然后在右侧窗格中单击Arguments
选项卡。在那里,您可以指定VM参数,例如:
-Xms64m
-Xmx1024m
之后您可以继续尝试Runtime
。 eclipse.ini
为Eclipse IDE配置资源,而不是为您运行的Java应用程序配置资源。
干杯!
答案 2 :(得分:0)
谢谢。所以解决方案是在运行中设置VM参数 - >在eclipse中运行配置。我把它设置为-Xms3072m -Xmx3072m,现在运行时totalMemory()返回3087007744,在4gb ram中使用64位Ubuntu 10.10和64位JVM返回2944MB。