0

我在 Ubuntu 服务器上运行 Java 程序。我使用命令行参数将最大 2560 MB 分配给 Java 堆,将最大 128 MB 分配给 Java PermGen。大约一个小时后,我去看看内存使用情况。从 Java 应用程序内部看来,它仍然为堆分配了大约 2500 MB,但在 ubuntu 中,JVM 似乎使用了 3500 MB!

怎么会这样?当然,JVM 不应该使用超过 heap + permgen + 更多的堆栈和其他一些小东西。

4

1 回答 1

0

如果是多线程应用程序,每个线程都会有自己的堆栈。如果您为线程的堆栈内存提供参数 -xss 则很有可能。

于 2013-05-27T16:43:26.423 回答