首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元应用程序是否从本机内存中分配?

元应用程序是否从本机内存中分配?
EN

Stack Overflow用户
提问于 2016-10-25 13:42:15
回答 2查看 1.8K关注 0票数 2

在Java 8中,元空间是从本机内存中分配出来的,但是我没有在网络上获得什么是本机内存?根据此链接,它是操作系统可用的内存,但在Java中元内存与本机内存的区别中,本机内存也显示为赋予JVM进程的内存的一部分。

示例:-,如果是,请考虑在windows上有15 GB内存的情况。我只有一个进程(Java )使用-Xmx 4GB在机器上运行。

这是否意味着操作系统可以使用到(15-4)=11 GB,从哪个元空间内存将被分配?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-25 14:02:27

元应用程序是否从本机内存中分配?

是。

资料来源:永久的

但是我在网上没有得到任何东西,什么是本地内存?

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

使用本机堆来保存metaspace对象的一个好处是,本机堆不像Java堆那样具有固定的最大大小(默认情况下)。

如果是的话,考虑一下我在windows上有15 GB内存的情况。我只有一个进程()运行在具有-Xmx 4GB的机器上。这是否意味着操作系统可以使用最多(15-4)=11 GB的元空间内存?

也许:

  • Windows机器上还会有其他进程。他们很多。只是它们是系统进程。
  • 对于允许Java进程增长的大小,可能存在操作系统强制限制。(我假设Windows在UNIX / Linux上扮演了ulimit的角色。)
  • 如果有可用的磁盘空间进行分页,操作系统实际上可能分配给Java进程的内存比物理内存页要多。
票数 2
EN

Stack Overflow用户

发布于 2016-10-25 14:02:39

本机内存是应用程序的正常内存。这被指定为由JVM管理的堆内存。例如,在C程序中,它被称为“内存”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40241660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档