Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 Ubuntu 服务器上运行 Java 程序。我使用命令行参数将最大 2560 MB 分配给 Java 堆,将最大 128 MB 分配给 Java PermGen。大约一个小时后,我去看看内存使用情况。从 Java 应用程序内部看来,它仍然为堆分配了大约 2500 MB,但在 ubuntu 中,JVM 似乎使用了 3500 MB!
怎么会这样?当然,JVM 不应该使用超过 heap + permgen + 更多的堆栈和其他一些小东西。
如果是多线程应用程序,每个线程都会有自己的堆栈。如果您为线程的堆栈内存提供参数 -xss 则很有可能。