- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道他们在 Java 8 中已将 PermGen 替换为 MetaSpace。但我有几个问题:
-XX:+CMSClassUnloadingEnabled
之类的args,那MetaSpace有什么比PermGen更好的地方呢?OutOfMemoryException
。最佳答案
Is MetaSpace by default is GC collected?
是的,当元空间满时,GC 会在元空间上运行,它也会动态增加(允许)分配给的内存 元数据。
Even the PermGen is GC collected by adding the args like -XX:+CMSClassUnloadingEnabled, then what makes MetaSpace better than PermGen?
改进之处在于元空间的动态扩展是 permgen 无法做到的。
MetaSpace is based on native memory, so it keeps the java objects on the disks rather than on VM?
根据元空间的描述,它只使用原生内存 (没有分页)。
根据 Pierre-Hugues Charbonneau (link here) 的研究,很明显,引入元空间并不一定能解决 OOM 问题,它充其量只是解决问题的方法,它试图动态调整元空间的大小内存来容纳越来越多的类,这些类被加载时可能会产生不可控制的增长(只要 native 内存允许)。
我们可以通过将 MaxMetaspaceSize
参数设置为 JVM 并运行提供的示例程序来实现著名的 OOM 错误。
非常感谢 Pierre - Hugues Charbonneau。
关于java - Java 8 中的 MetaSpace 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074164/
我写了一个程序来模拟 MetaSpace OOM。但我发现 MetaSpace Size 几乎总是 Used MetaSpace 的两倍。为什么? 我使用标志 -XX:MaxMetaspaceSize
我想知道如何自己引发OutOfMemoryError: Metaspace异常?是不是可以加载很多类,让它们在内存中长期驻留。 最佳答案 继续向 StringBuilder 添加一些文本,直到出现 O
我正在为生产环境优化 JVM 参数,这包括为应用程序设置最大元空间。我在修复此问题时遇到以下问题: 当环境中有多个应用程序时,我是否真的想设置限制? 是否有内置工具(JDK)可以测量元空间的当前利用率
由于 Java 8 中的元空间,我有一个简短的问题。我知道我可以使用 -XX:MetaspaceSize - 参数设置初始大小。但我想知道是否可以将此值配置为最小大小。 我的目标是防止由于 Metas
java.lang.OutOfMemoryError:Metaspace表示为java类元数据分配的本机内存量已过测试。让我们看看如何在独立应用程序和云应用程序中解决这个问题。 在Java 8及更高版
1. Metaspace区是怎么发生OOM的 在jvm中,用来控制Metaspace区域内存大小的参数一般有两个: -XX:MetaspaceSize:Metaspace初始大小; -X
我一直认为垃圾收集器只清除堆,现在我这么认为。 在 java 8 中,permGen 被删除并被 Metaspace 取代。 据我所知,Metaspace 是垃圾收集器(https://stackov
我目前正在调查我们最近遇到的一些元空间不足问题。罪魁祸首之一似乎是在重新部署 WAR 时加载重复的类。在本地尝试,仅使用我们的一个 WARS,通过完全取消部署后的堆转储,我可以看到应用程序创建的大多数
将我们的 Java 应用程序(在 Tomcat 上运行的服务)JRE 从 Java 7 切换到 Java 8 后,我们开始看到 java.lang.OutOfMemoryError: Metaspac
在 Java 7 之前,JVM 内存中有一个名为 PermGen 的区域,JVM 用来保存它的类。在 Java 8它被移除并被称为 Metaspace 的区域所取代。 PermGen 和 Metasp
在我们的 Wildfly 10 应用服务器上,我们将 groovy 用于 jasperreports 和其他类似系统。 一段时间后,jvm(java 8)收到“内存不足:元空间”错误。 同样的问题发生
我在运行 Java cs 应用程序时遇到 OutOfMemoryError。根据错误信息,似乎是在将XML String传输到Java对象时发生错误。 转账代码如下 public static Obj
我的目标是模拟我可以收到此错误的情况。我试过了How to simulate OutOfMemoryError: Metaspace但它没有帮助。 我在配置中设置:-XX:MaxMetaspaceSi
我知道他们在 Java 8 中用 MetaSpace 替换了 PermGen。但我有几个问题: MetaSpace 是否默认进行 GC 收集? 即使是 PermGen 也是通过添加像 -XX:+CMS
我知道他们在 Java 8 中已将 PermGen 替换为 MetaSpace。但我有几个问题: MetaSpace 是否默认被 GC 收集? 连PermGen都是GC收集的,加了-XX:+CMSCl
目前我正在使用 Gradle 5.2.1 配置 Spring boot 2.1 项目。但是我在构建项目时出现内存不足错误并且无法理解确切原因。 请找到随附的日志 Caused by: org.grad
据我了解,JVM 内的 Native Area 完全禁止垃圾收集器使用。 Metaspace 所在的 Native Area 内部。在前面提到的元空间中,我们有常量池、字段和方法数据等区域。 既然 N
Scala IDE Oxygen 2017 年 9 月运行时出现错误“发生错误。请参阅日志文件 ....metaspace.log。” 版本:Scala 代码运行器版本 2.12.3java版本“9.
Java 8 刚启动后就为 Metaspace 保留 1G。这意味着最小元空间大小为 1G。但我将 MetaspaceSize 设置为 300m,MaxMetaspaceSize 设置为 400m。为
在我们在 Jdk 8 上运行的应用程序中,我们使用 VisualVM 来跟踪加载的类的使用情况和元空间的使用情况。 在我们的应用程序运行的某个时间点,我们看到加载的类的数量不再增加,但是当我们的程序运
我是一名优秀的程序员,十分优秀!