针对有限的资源环境测试 Java



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

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

谢谢!

编辑:我想我应该让我的问题更简单:如何可视化仅针对 jvm 的资源较少的环境?

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

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

最新更新