gpt4 book ai didi

java - 元空间是从 native 内存中分配的吗?

转载 作者:行者123 更新时间:2023-11-29 04:38:31 25 4
gpt4 key购买 nike

在 Java 8 中,元空间是从 native 内存中分配的,但是我在网上没有找到什么是 native 内存?根据这个link它是操作系统可用的内存,但位于 Difference between Metaspace and Native Memory in Java , native 内存也显示为分配给 JVM 进程的内存的一部分

例子:-如果是,请考虑我在 Windows 操作系统上有 15 GB 内存的情况。我只有一个进程(Java 进程)在带有 -Xmx 4GB 的机器上运行。

这是否意味着操作系统最多可以使用 (15-4)=11 GB 元空间内存?

最佳答案

Is metaspace allocated out of native memory?

是的。

权威来源:https://blogs.oracle.com/poonam/entry/about_g1_garbage_collector_permanent

But i did not get anywhere on net what is native memory ?

native 堆是为 JVM 中以 native 代码 (C++) 实现的那些部分提供动态内存的 malloc/free 堆。它也可以被 JVM 加载的用户提供的 native 库使用。 native 堆不是垃圾回收本身,但元空间是。

使用 native 堆来保存元空间对象的一个​​好处是 native 堆不像 Java 堆那样具有固定的最大大小(默认情况下)。

If yes consider the case where i have 15 GB ram on windows OS. I have just one process (Java process) running on machine with -Xmx 4GB. Does it mean OS can use up to (15-4)=11 GB out of which meta space memory will be allocated?

也许:

  • Windows 机器上会有其他进程。其中很多。只不过是系统进程罢了。

  • 操作系统可能对允许 Java 进程增长的大小施加了限制。 (我假设 Windows 有一些东西可以填补 UNIX/Linux 系统上的 ulimit 的角色。)

  • 如果有可用于分页的磁盘空间,操作系统实际上可能会为 Java 进程分配比可用的物理内存页面更多的内存。

关于java - 元空间是从 native 内存中分配的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com