Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Xmx是3072m,但Runtime.getRuntime().totalMemory()返回59mb_Java_Eclipse_Memory Size - Fatal编程技术网

Java Xmx是3072m,但Runtime.getRuntime().totalMemory()返回59mb

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

我正在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
-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()不打印最大堆大小。您可以找到许多关于如何进行更详细打印的示例。例子: