java os x 堆大小问题

发布于 2024-11-28 22:24:42 字数 571 浏览 0 评论 0原文

我一直在 eclipse 和 intellij 中查看 os x 上的 JVM 堆大小,并直接通过命令行运行应用程序,我看到了一个奇怪的行为,希望有人能解释一下。

  1. 如果我将 Eclipse 的 jvm 堆大小设置为较大的值(例如超过 1GB),然后运行一个执行的 hello world 应用程序

    System.out.println(Runtime.getRuntime().maxMemory());

我看到它的最大内存为 129957888 (128mb)。

  1. 如果我在 intellij 中运行相同的实验,我会得到相同的结果,但底角的堆大小指示器表明我只使用了 2GB 中的 100MB。

  2. 如果我只是运行 java test -Xmx1024mb,那么它会告诉我我有正确的最大内存量。 (8倍)

我在10.6和10.7上尝试过这个,我看到了同样的事情,所以我想知道IDE没有消耗我想要的那么多堆大小是怎么回事。当我的机器上有大量内存未使用时,我会遇到堆空间错误,我发现这很荒谬。

感谢任何人可以提供的帮助。

I have been looking at JVM heap sizes on os x both in eclipse and intellij and running applications directly through the command line and I'm seeing a weird behavior I am hoping someone can explain.

  1. If I set the jvm heap size to something large (e.g. over 1gb) for eclipse and then run a hello world application that executes

    System.out.println(Runtime.getRuntime().maxMemory());

I see that it has 129957888 (128mb) as max memory.

  1. If I run the same experiment in intellij, I get the same result but the heap size indicator in the bottom corner says I'm only using 100mb out of 2gb that I can.

  2. If I just run java test -Xmx1024mb, then it tells me that I have the right amount max memory. (8 times as much)

I have tried this on 10.6 and 10.7 and I'm seeing the same thing, so I'm wondering what is going on with the IDE's not consuming as much heap size as I want them to. I am getting heap out of space errors when I have gigs of ram on my machines sitting there unused and I am finding this to be ridiculous.

Thanks for any help anyone can provide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

断桥再见 2024-12-05 22:24:42

听起来您正在为 IDE 的 JVM 设置堆大小,而不是为 IDE 启动来运行程序的 JVM 设置堆大小。如果 IDE 在运行代码的同一个 JVM 中运行您的代码,那将是危险的。

在 Eclipse 中,运行程序时使用的默认堆大小为 128 MB。您可以使用运行或调试配置来覆盖它。

  1. 右键单击具有要运行的 main 方法的 Java 类,
  2. 选择“运行方式”->“运行配置...
  3. 单击“参数”选项卡
  4. 在“VM 参数”部分中,输入 -Xmx256m
  5. 单击“运行”

上述设置将 JVM 使用的最大堆大小设置为 256 MB。

您的测试类的输出现在应该是 265093120。

It sounds like you are setting the heap size for the IDE's JVM instead of for the JVMs the IDEs are launching to run your programs. It would be dangerous if an IDE ran your code in the same JVM in which it was running.

In Eclipse, the default heap size used when running programs is 128 MB. You can override this with a run or debug configuration.

  1. Right click on the Java class with the main method you want to run
  2. Select Run As -> Run Configurations...
  3. Click on the Arguments tab
  4. In the VM arguments section, enter -Xmx256m
  5. Click Run

The above setting sets the max heap size used by the JVM to 256 MB.

The output for your test class should now be 265093120.

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