java - jvm8 中的元空间大小是多少?

标签 java garbage-collection jvm

根据元空间的描述,它仅使用 native 内存(无分页)。

由于类元数据是从 native 内存中分配的,因此最大可用空间是总可用系统内存。

以上两个解释是我在网上找到的。 我有一个问题。

  1. 所谓的native内存是位于jvm进程中的吗? native 内存大小=java进程内存大小-堆大小,对吧?如果是这样,为什么他们说最大可用空间是可用系统内存总量,因为 32 位 java 进程的最大大小仅限于 2G 左右?

最佳答案

it only uses the native memory (no paging).

可以根据需要交换此内存。

The so-called native memory is located in jvm process?

native 内存位于 JVM 进程中。

The native memory size = java process memory size - heap size, right?

native 内存是 native 代码可以看到的所有内存。您可能想要排除堆。

If that, why they said the max available space is the total available system memory

如果您没有操作系统或架构限制,例如

the maximum size of 32-bit java process is limited only to about 2G ?

最大为 4 GB,但在不同的操作系统上,部分虚拟内存由操作系统使用。在 Windows XP 上,您只有 1.2 - 1.5 GB。在某些 UNIX 上,32 位进程可以使用 3.0 - 3.5 GB

关于java - jvm8 中的元空间大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999737/

相关文章:

java - 如何通过字符串名称创建类实例

java - 轴2 + Tomcat : Web service working directory

java - GC 不会从weakhashmap 中删除对象

java - 如何在 Jasmine 中打印长条?

java - 不同的 (HotSpot) JVM 线程类型有什么作用?

java - 编译器和运行时系统如何处理java中的嵌套类型?

java - OffsetDateTime 中的 Z 偏移是什么?

java - import org.apache.poi.xssf 无法解析

java - 为什么会有Full GC?

python - 如何在python中获取垃圾值