0

我正在编写将在内存很少的环境中运行的 java。我的机器有大量内存,所以我需要限制堆大小(这是我可以应用的唯一限制吗?)。我一直在 Eclipse 中使用“-Xmx100m”作为 VM 参数,但是当我运行应用程序时,我可以在任务管理器中看到使用的内存远高于 100MB。我用错了吗?

此外,我的大部分内存都分配在局部变量中。这些将被放在线程的堆栈上,它驻留在堆空间中,对吗?只是好奇,如果我的程序完全由静态方法组成,这些局部变量会分配到哪里呢?

谢谢!

编辑:我想我应该让我的问题更简单:我怎样才能为 jvm 可视化一个资源较少的环境?

4

1 回答 1

0

堆栈始终存在,并且可以在其上分配变量 - 无论它是否是静态方法。

我还多次观察到 jre 实际上使用的内存比 -Xmx 设置指定的要多。这在这个问题中有详细讨论。

于 2013-02-01T22:30:29.883 回答