Java应用程序内存大小

AhH*_*tem 3 java eclipse memory intellij-idea

当IntelliJ或Eclipse正在运行时,我可以从底部的进度条看到它们在应用程序内部使用了多少堆...它总是指示一个512 MB的子值,它是启动时分配的最大大小.现在在很多情况下,如果我从操作系统(Linux)看,它说该应用程序使用大约1300 MB,我理解库,堆栈,内存映射文件,...不在堆...但为什么差别那么大?通常有大约1GB的差异......为什么?

谢谢.

Cra*_*der 6

可以通过此图像解释JVM内存使用情况:

JVM内存使用情况

如你所见,它不仅仅是-Xmx.总进程内存还包括-XX:PermSize所有线程的堆栈大小,JIT和其他内部使用的JVM内存.不要忘记也包含在进程内存中的内存映射文件.IntelliJ IDEA将内存映射文件用于缓存,因此它可以添加几百兆字节.

如果您需要详细信息,请使用JConsole或YourKit等分析器.