【问题标题】:Total memory used by Java process and heap sizeJava 进程使用的总内存和堆大小
【发布时间】:2011-12-15 16:24:25
【问题描述】:

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

谢谢

【问题讨论】:

    标签: java memory jvm size heap-memory


    【解决方案1】:

    有共享库、线程栈、perm gen、直接内存、内存映射文件。

    但是,JVM 会在启动时分配最大堆大小。使用的数量并不重要。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 2012-05-04
        • 2012-09-29
        • 1970-01-01
        • 2012-09-23
        相关资源
        最近更新 更多