写点什么

JVM heap + non-heap 是否等于 RSS?

作者:Geek_b2fe7a
  • 2023-09-11
    中国香港
  • 本文字数:285 字

    阅读完需:约 1 分钟

结论:heap + non-heap ≤ RSS

JVM 堆内存(heap)主要用于存放 Java 对象实例。非堆内存(non-heap)主要包含永久代、代码缓存等。

而操作系统的 RSS(Resident Set Size)内存是当前进程实际使用的物理内存大小,包括:

  • 堆内存

  • 非堆内存

  • JVM 自身占用的内存开销

  • 加载类和执行 native 代码占用的内存

  • 堆外内存(DirectByteBuffer 等)

  • 保留和缓冲等系统级内存占用

所以 JVM 的 heap+non-heap 内存只是进程整体 RSS 内存的一个子集。即:

heap + non-heap ≤ RSS

实际上,RSS 和 heap+non-heap 之间常常会有一定的差值,这个差值部分就是 JVM 自身和系统级别的内存占用。

综上,JVM 堆内存和非堆内存之和不完全等于进程的整体 RSS 内存。二者有包含和被包含的关系。

用户头像

Geek_b2fe7a

关注

还未添加个人签名 2020-06-10 加入

还未添加个人简介

评论

发布
暂无评论
JVM heap + non-heap是否等于 RSS?_Geek_b2fe7a_InfoQ写作社区