2

除了这些地方之外,hostspot JVM 进程是否在任何地方存储内存:

  • 烫发
  • 终身制
  • 伊甸园
  • 从太空
  • 去太空
  • 代码缓存

也就是说:热点进程有哪些可能的方式可以在机器上保留和提交内存,以使所述内存不会出现在其中一个地方的统计信息中?

我能想到的一些答案(让我知道这些是否属实):

  • 用于线程堆栈的虚拟内存未以这些数字表示
  • 任何加载的 dll 或文件。

编辑:

给出了其他一些答案:

  • java.exe 本身
  • JNI 方法可以自己分配内存
  • 任何本机代码(例如来自 dll)都可以分配内存。
  • 用于自身运行的通用 JVM 元数据。
4

1 回答 1

1

到目前为止,您是正确的(DLL 包括所有 JNI 库以及它们分配的任何内存)。VM 也有自己的代码(例如 的内容)、有关分配给 Java 程序的内存的java簿记信息以及 VM 代理可能使用的内存。基本上,您在第一个列表中描述的是构成虚拟机“运行内存”的项目;JVM 内存的其余部分是代表虚拟机“硬件”的所有项目,例如将其连接到操作系统网络、图形等的库。

于 2013-07-31T21:31:39.680 回答