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

发布于 2024-10-18 06:47:36 字数 780 浏览 2 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

笔芯 2024-10-25 06:47:36

1) Runtime.getRuntime().totalMemory() 不返回允许的最大堆大小。

2) 我不确定如何运行 Runtime.getRuntime().totalMemory() 但我猜您是在 Java 应用程序的 Eclipse 中执行此操作的。在这种情况下,您在另一个 JVM 中执行调用,该 JVM 不会从您的 eclipse.ini 文件继承属性。如果您想确定它的初始和最大堆大小,您可以转到Run->Run Configurations...。单击当前的运行配置,然后在右侧窗格中单击Arguments 选项卡。您可以在其中指定 VM 参数,例如:

-Xms64m
-Xmx1024m 

之后您可以继续试验运行时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 your eclipse.ini file. If you want to determine the initial and max heap size for it you can go to Run->Run Configurations.... Click on your current run configuration and in the right pane click on the Arguments tab. There you may specify the VM arguments, e.g.:

-Xms64m
-Xmx1024m 

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!

歌枕肩 2024-10-25 06:47:36

简而言之,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

很酷不放纵 2024-10-25 06:47:36

谢谢。因此,解决方案是在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文