Xmx 是 3072m 但 Runtime.getRuntime().totalMemory() 返回 59mb
我在 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,但没有任何改变。我不知道发生了什么事。如何设置堆大小?我的总内存是 4GB,我使用 64 位 Ubuntu 和 64 位 eclipse。任何信息都会对我非常有帮助。
I am using eclipse EE in ubuntu by downloading the .tar.gz file from eclipse website and extracting in my home directory. I set the -Xmx to 3072m in the eclipse.ini. Here it is:
-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
But when I am trying to see my total memory by
Runtime.getRuntime().totalMemory()
It is returning 62193664 that is 59mb. I also tried to launch eclipse from terminal setting vmagrs, but nothing changed. I don't know what is happening. How can I set the heap size? My total ram is 4gb and I using 64bit Ubuntu with 64bit eclipse. Any information will be very helpful to me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
1)
Runtime.getRuntime().totalMemory()
不返回允许的最大堆大小。2) 我不确定如何运行
Runtime.getRuntime().totalMemory()
但我猜您是在 Java 应用程序的 Eclipse 中执行此操作的。在这种情况下,您在另一个 JVM 中执行调用,该 JVM 不会从您的 eclipse.ini 文件继承属性。如果您想确定它的初始和最大堆大小,您可以转到Run->Run Configurations...
。单击当前的运行配置,然后在右侧窗格中单击Arguments
选项卡。您可以在其中指定 VM 参数,例如:之后您可以继续试验
运行时
。eclipse.ini
为 Eclipse IDE 配置资源,而不是为您运行的 Java 应用程序配置资源。干杯!
1) The
Runtime.getRuntime().totalMemory()
does not return the maximum allowed heap size.2) I'm not sure how do you run
Runtime.getRuntime().totalMemory()
but I guess you do that from within your Eclipse in a Java application. In this case you execute the call in another JVM which does not inherit properties from youreclipse.ini
file. If you want to determine the initial and max heap size for it you can go toRun->Run Configurations...
. Click on your current run configuration and in the right pane click on theArguments
tab. There you may specify the VM arguments, e.g.:Afterwards you may continue experimenting with the
Runtime
.eclipse.ini
configures the resources for the Eclipse IDE not for the Java application that you run.Cheers!
简而言之,
Runtime.getRuntime().totalMemory()
没有什么用,它返回的是一轮GC的大小。该线程有一个解释: http://mail .openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html
In short,
Runtime.getRuntime().totalMemory()
is useless, it returns the size of one GC generation.This thread has an explanation: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2008-December/000318.html
谢谢。因此,解决方案是在 eclipse 中从“运行”->“运行配置”设置 VM 参数。我已将其设置为 -Xms3072m -Xmx3072m ,现在运行时 TotalMemory() 返回 3087007744,即 4GB RAM 中的 2944MB,具有 64 位 Ubuntu 10.10 和 64 位 JVM。
Thank you. So the solution is setting VM Arguments from Run->Run Configurations in eclipse. I had set it to -Xms3072m -Xmx3072m and now the Runtime totalMemory() is returning 3087007744 that is 2944MB in 4gb ram with 64 bit Ubuntu 10.10 and 64 bit JVM.