繁体   English   中英

Java 进程使用的总内存和堆大小

[英]Total memory used by Java process and heap size

我使用 Spring Batch 编写了一个应用程序。 我可以通过 VisualVM 看到堆大小约为 22 MB。 但是,当我使用 Process Explorer(在 Windows 上)查看它使用了多少内存时,差异很大(私有字节 - 71560K 和工作集 - 80388K)。 这怎么解释? 使用这个内存的其他东西是什么?

谢谢

有共享库、线程堆栈、永久代、直接内存、内存映射文件。

但是,JVM 在启动时分配最大堆大小。 使用的数量没有那么重要。

不要忘记本机空间(堆栈)! 堆只代表对象,线程/原语占用额外的内存。 同样 AFAIK,一旦进程占用内存,即使内容可能被垃圾收集,它有时也不会释放回操作系统。 另外,我不确定 VisualVM,但 Eclipse MAT 只显示“当前”的堆(如果当时运行 GC,则不会被垃圾收集)。 您可能还想查看 jstat。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM