Java Xmx是3072m,但Runtime.getRuntime().totalMemory()返回59mb
我正在ubuntu中使用EclipseEE,从eclipse网站下载.tar.gz文件并在我的主目录中解压缩。我在eclipse.ini中将-Xmx设置为3072m。这是:Java Xmx是3072m,但Runtime.getRuntime().totalMemory()返回59mb,java,eclipse,memory-size,Java,Eclipse,Memory Size,我正在ubuntu中使用EclipseEE,从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 -pr
-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,但没有任何改变。我不知道发生了什么事。如何设置堆大小?我的总内存是4gb,我使用64位Ubuntu和64位eclipse。任何信息都会对我很有帮助。简而言之,
运行时。getRuntime().totalMemory()是无用的,它返回一代GC的大小
此线程有一个解释:1)运行时.getRuntime().totalMemory()未返回允许的最大堆大小
2) 我不确定如何运行Runtime.getRuntime().totalMemory()
,但我想您可以在Java应用程序中的Eclipse中运行它。在本例中,您在另一个JVM中执行调用,该JVM不从eclipse.ini
文件继承属性。如果要确定它的初始堆大小和最大堆大小,可以转到Run->Run Configurations…
。单击当前运行配置,然后在右窗格中单击参数
选项卡。您可以在此处指定VM参数,例如:
-Xms64m
-Xmx1024m
之后,您可以继续使用运行时
进行试验eclipse.ini
为eclipse IDE配置资源,而不是为您运行的Java应用程序配置资源
干杯 谢谢。因此,解决方案是在eclipse中通过运行->运行配置设置VM参数。我已经将其设置为-Xms3072m-Xmx3072m,现在运行时totalMemory()返回3087007744,即在4gb内存中,使用64位Ubuntu 10.10和64位JVM时返回2944MB。为了测试Xmx,我尝试分配维度为100000000的布尔数组的内存。它在线程“main”java.lang.OutOfMemoryError中给出异常:eclipse中的java堆空间。但是如果我执行java代码命令行设置java-Xmx3072m,它就可以工作了。但从eclipse来看,它不起作用。我已经将eclipse.ini的-vm设置为/usr/lib/jvm/java-6-openjdk/jre/bin/java。但一切都没有改变。我无法解释这种行为。谢谢。你的建议真的很有帮助。运行配置中的设置-vm选项正在工作。但运行时给出了相同的旧值。但代码现在正在运行,并为100000000维布尔数组分配内存空间。非常感谢。嗨!totalMemory()不打印最大堆大小。您可以找到许多关于如何进行更详细打印的示例。例子: