当前位置: 首页 > 知识库问答 >
问题:

在Hotspot JVM中,为什么CD需要压缩的OOP?

富辰阳
2023-03-14

我读了这篇文章“https://malloc.se/blog/zgc-jdk15,最后一个索引是关于数据共享的。在这个索引中,,

我知道一些CD和压缩OOP,但我不理解它们之间的关系。


共有1个答案

翟缪文
2023-03-14

CD(类数据共享)不需要压缩的OOP。但是,在JDK15之前,它只在默认配置下工作,其中UseCompressedOops=trueUseCompressedClassPointers=true

JDK-8232069中描述了问题和解决方案

要使CD存档有效,运行时值UseCompressedOopsUseCompressedClassPointers必须与存档生成期间使用的值匹配。在JDK-8232069之前,值没有保存在归档文件中,JVM假设已打开压缩的OOP(默认设置)。因此,CDS与ZGC不兼容,因为ZGC要求关闭压缩OOP。

为了使CD与ZGC兼容,JDK-8232069将UseCompressedOopsUseCompressedClassPointers的值写入存档,当JVM启动时,它会检查当前标志是否与保存的值匹配。所以现在(从JDK15开始)CDS可以与压缩OOPs的任何一种配置一起工作,现在它与ZGC兼容。

 类似资料:
  • 问题内容: 在Golang中,我们将结构体与接收器方法结合使用。到这里为止一切都很完美。 我不确定什么是接口。我们在结构中定义方法,如果要在结构上实现方法,则无论如何都要在另一个结构下再次编写该方法。 这意味着接口似乎只是方法定义,仅占用了页面上多余的空间。 有没有解释我为什么需要接口的示例? 问题答案: 接口太大了,不能在这里给出全面的答案,但是有些事情需要弄清楚它们的用途。 接口是一种 工具

  • 问题内容: 我知道String [] args是作为参数传递给main的字符串数组。 但是,当您不将其包含为参数时(即使您不使用它),它也会引发异常。那么为什么需要它呢?另外,为什么不能是int []或boolean []? 问题答案: 这是一个字符串,因为命令行以文本形式表示。如果要将文本转换为整数或布尔值,则必须自己做- 操作系统或Java引导程序如何确切知道您希望如何解析所有内容?我想Jav

  • 问题内容: 我可以将数据发送到服务器,但是只有在使用FromBody-Attribute时才可以。 为什么无法使用Post从主体自动读取json数据? 后端Web API 前端angularjs 问题答案: 仅因为某事是POST请求,所以没有明确的规则如何传递参数。POST请求仍可以包含URL中编码的查询参数。方法参数应该是“简单”类型(字符串,整数等)的查询参数。 通常,复杂类型应该是POST表

  • 问题内容: 我正在尝试构建一个简单的React应用程序,并且想知道为什么我需要browser.min.js文件。 我已经包含了react和react-dom.js,但是除非未包含browser.min.js,否则什么也不会显示。 问题答案: 正如您在代码段中看到的那样,script标记的类型为“ text / babel”,这是因为您正在其中使用JSX(带有XML的Javascript)进行编码。

  • 互联网是超文本标记语言(HTML)页面的集合,它们彼此链接以形成概念性信息网络。随着时间的推移,静态资源数量增加,图像等更丰富的项目开始成为Web结构的一部分。 高级服务器技术允许动态服务器页面 - 其内容基于查询生成的页面。 很快,需要拥有更多动态网页才能获得动态超文本标记语言(DHTML)。一切都归功于JavaScript。在接下来的几年中,我们看到了跨帧通信,试图避免页面重新加载,然后在帧内

  • 当前信息时代,哪里都是应用程序。这些应用程序们不仅仅是运行人们工作场所的工具 - 它们现在正在经营人们的生活。 对即时响应的需求,完美的行为和更多的功能是前所未有的。 而且,当然,人们期望应用程序在不同类型的设备上运行平稳,特别是在移动设备上。 应用程序执行的速度与它所做的一样重要。 NGINX的核心功能,例如其具有高性能HTTP和反向代理服务器的大规模可扩展事件驱动架构,访问和带宽控制以及与各种