问题标签 [metaspace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1781 浏览

java - Coldfusion 元空间 null

使用 CF2016 我在开发人员环境和生产环境中都看到了这个错误,但频率较低。

阅读一些论坛了解垃圾收集器的想法并设法实现此代码来强制收集器:

奇怪的是,运行时内存有很多空间(通常有一半空间是空闲的)但Metaspace Null仍然出现。

另一个方法可能是加载的类,也许它们不会被自动销毁。但我找不到查看加载的方法。

到目前为止,“解决方案”是重新启动服务器,以便我可以正常运行。我能够减少将最大 JVM 堆大小增加到 1024MB 但仍然发生的错误频率

而且堆栈跟踪......很难到达ghost文件中的-1行!xD

在此处输入图像描述

Java版本:1.8.0_112

垃圾收集器:-XX:+UseParallelGC(默认)

VM 的参数(为了便于阅读,换行)

0 投票
0 回答
26 浏览

java - 防止对象在 JVM 的生命周期内被垃圾收集

我有大量的池化对象,它们将在 JVM 的生命周期中不断地重用。这些对象不应该垃圾收集。

我想要一种优化 JVM 的方法,以从不尝试(并浪费时间)检查垃圾收集的资格。这一点尤其重要,因为池对象的数量会非常高,并且会导致 CPU 和 GC 压力。

在一段时间内,这些大量对象将进入 JVM old-gen,然后是元空间,我想要一种方法来提示/优化 JVM,即使在 Full-GC 期间检查这些大量对象的 GC 资格(导致更长的 jvm pauses) 是浪费时间,永远不要尝试它们。

针对这种情况进行优化的正确方法是什么?

一种选择是使用堆外内存。我可以将这些对象保留在 JVM 堆中以避免堆外复杂性但仍然优化 GC 吗?

0 投票
2 回答
486 浏览

java - 为什么堆内存与 Java 8 中的元空间一起上升?

我正在做一个小测试来了解元空间内存(Java 8 以上)是如何工作的。当我动态创建 100,000 个类时,元空间内存正在增长(显然),但堆内存也在​​增长。有人可以向我解释为什么会这样吗?

PS:我正在使用 128 MB 的堆和 128 MB 的元空间运行测试。

请参阅下面的图片:

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
224 浏览

java-8 - Java 8 - 它会改变最终字符串变量的最终位置吗?

我找不到这个问题,对不起,如果我的搜索技巧错过了!

在 Java 8 之前,我认为声明如下:

最好声明为:

与 post PermGen(现在的 Metaspace)还有区别吗?对这种差异有什么-XX:+UseStringDeduplication影响(无论如何对于字符串)?

0 投票
1 回答
6489 浏览

java-8 - Wildfly 是否有任何推荐的元空间设置大小?

WildFly 的元空间大小是否有任何最佳实践?

例如,对于最大堆内存,我将进行以下设置:

((未运行 Wildfly 的内存) * 2) - (可用内存总量)

如果我不指定MaxMetaspaceSize我知道 Metaspace 会自动增加,但这是一个好习惯吗?

提前致谢

0 投票
1 回答
547 浏览

performance - 随着元空间的增长,应用程序正在放缓

我刚刚从 grails 2.4.3 迁移到 grails 2.5.6,从 Java 7 迁移到 Java 8。我正在尝试在我的应用程序中设置最佳元空间大小。

实际元空间大小对应用程序性能有很大影响:

使用的元空间和响应平均时间:

  • 200 MB - 339 毫秒
  • 300 MB - 380 毫秒
  • 400 MB - 430 毫秒
  • 500 MB - 460 毫秒
  • 600 MB - 530 毫秒

元空间在 90 分钟内从应用程序开始增长到 620MB。

这是我的实际 gc 设置:

当 MaxMetaspaceSize 设置为 512M 时,运行几个小时后,我的应用程序会在一小时内减慢 1 或 2 倍。响应时间约为 10 秒。

有人遇到过这样的问题吗?在您的应用程序中,元空间对性能有这样的影响吗?

0 投票
1 回答
219 浏览

java - JVM 元空间在次要垃圾回收后被填充

我一直在研究 Java 内存管理和堆内存中的各个部分,例如 eden、s0、s1、old gen 和元空间。我使用 VisualGC 来跟踪堆的不同部分之间的内存填充情况。我注意到在第一次垃圾回收后元空间区域占用的内存量急剧增加。

这是 VisualGC 表示的图像:

VisualGC_Monitoring

我想了解第一次 gc 后添加到元空间的内容。我做了研究,但无法得到答案。这里有什么帮助吗?

0 投票
1 回答
1034 浏览

java - Java 8 中的 Java 内存区域

我已经阅读了很多关于 java 内存区域的内容,但看起来它只是一团糟。主要是由于引入了一个新MetaSpace区域而不是PermGen在 java8 中。现在有问题:

  1. heapjava8+中包含哪些区域?
  2. static方法和变量在 java8 和 java8+ 之前存储在哪里?
  3. MetaSpace除了类元数据信息之外,是否存储任何内容?
  4. 内存区域的结构是否取决于实现JVM

谢谢您的回答。

0 投票
1 回答
3261 浏览

android - 升级到 Gradle 5 和 Android 插件 3.3 后,我的构建失败并出现“元空间”

这发生在我从 4.10.3 升级到 Gradle 5.0 以及 Android Gradle Plugin 从 3.2.1 升级到 3.3.0-rc03(后者是因为它是第一个正式支持 Gradle 5 的 AGP 版本)时。

当我尝试在此之后同步我的项目时,我收到一个错误。错误只说:

随后的构建也发出了这个错误,或者更模糊的东西,比如:

这个问题没有明显的解决方案。搜索“gradle metaspace”会找到 Gradle 5 的发行说明,这些说明本身仅在此处引用:

#7385 - 限制 Gradle 使用的元空间

问题本身并不是最有帮助的。

0 投票
1 回答
427 浏览

java - Java 中如何管理 Metaspace 和 Native Area 内存?

据我了解,JVM 内的Native Area完全禁止垃圾收集器使用。元空间所在的Native Area内部。在前面提到的元空间中,我们有常量池、字段和方法数据等区域。

由于本机区域是由 C++ 内存管理管理的(或者至少我是这么理解的),为什么不是固定大小的 Metaspace,而是根据需要多少内存而动态增长,不会运行出记忆?元空间是否允许垃圾收集器,但本机区域的其余部分不允许?C++ 是否动态管理那里的内存?