在有限的资源环境中测试Java

时间:2013-02-01 22:25:34

标签: java memory memory-management limit

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

此外,我的大部分内存都是在局部变量中分配的。这些将被放在线程的堆栈中,它位于堆空间中,对吗?好奇,如果我的程序完全由静态方法构成,那么这些局部变量将在哪里分配?

谢谢!

编辑:我想我应该让我的问题变得更简单:如何用jvm为资源较少的环境可视化?

1 个答案:

答案 0 :(得分:0)

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

我还观察过几次jre实际使用的内存多于-Xmx设置指定的内存。这在this question.

中详细讨论