开发与运维技术问题之ava对象头压缩技术支持所有的Java垃圾回收器如何解决

简介: 开发与运维技术问题之ava对象头压缩技术支持所有的Java垃圾回收器如何解决

问题一:Java对象头压缩技术的主要实现依赖有哪些?


Java对象头压缩技术的主要实现依赖有哪些?


参考回答:

Java对象头压缩技术的主要实现依赖包括几个关键的JDK改进:首先,使用了一个新的stack locking替换方案,以解决压缩对象头后频繁lock/unlock可能无法稳定获取klass指针的问题;其次,在G1等垃圾回收器的Full GC过程中,需要有额外的机制来保存forward oop,因为object mark word会用来保存这个信息,从而无法正确获取class指针;此外,还需要处理G1/Parallel GC等在gc过程中可能出现的evacuation failure情况,这时对象头会用来存放自身对象指针,也会引起class指针无法读取的问题;最后,完成了由+/-UseCompactObjectHeaders控制的对象头压缩的实现,并修复了因对象头压缩可能引起的某些问题,如ARM服务器上Arrays.equals的潜在crash问题,并提升了其性能。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/625790


问题二:Java对象头压缩技术能带来多大的内存优化?


Java对象头压缩技术能带来多大的内存优化?


参考回答:

Java对象头压缩技术可以显著减少Java对象的内存占用。以java.lang.Long对象为例,应用对象头压缩后,内存占用从24 bytes减少到16 bytes,减少了1/3。而且,早期的项目试用者在实际应用中发现,使用这项技术后,内存占用通常下降了10-20%。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/625791

问题三:Java对象头压缩技术是否支持所有的Java垃圾回收器?


Java对象头压缩技术是否支持所有的Java垃圾回收器?


参考回答:

虽然Java对象头压缩技术可以带来显著的内存优化,但它并不支持所有的Java垃圾回收器。例如,由于压缩对象头后的一些限制,这项技术无法支持biased locking以及CMS垃圾回收器。在JDK的更高版本中,biased locking和CMS GC已经被默认关闭或删除。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/625792


问题四:如何启用或禁用Java对象头压缩技术?


如何启用或禁用Java对象头压缩技术?


参考回答:

Java对象头压缩技术可以通过设置+/-UseCompactObjectHeaders来控制其启用或禁用。当设置为+UseCompactObjectHeaders时,启用对象头压缩;设置为-UseCompactObjectHeaders时,则禁用该技术。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/625793


问题五:Dragonwell JDK中,UseCompactObjectHeaders带来了哪些主要的优势?


Dragonwell JDK中,UseCompactObjectHeaders带来了哪些主要的优势?


参考回答:

带来了三个主要优势:1)Java对象内存占用减少了大约5-10%;2)Java新分配对象的内存占用(allocation rate)和GC频率也降低了大约5-10%;3)CPU和基础吞吐性能基本保持一致,在部分内存带宽使用较高的场景中,还可以显著提升吞吐性能。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/625794

目录
相关文章
|
9天前
|
Java
死磕-java并发编程技术(二)
死磕-java并发编程技术(二)
|
9天前
|
存储 Java 调度
死磕-java并发编程技术(一)
死磕-java并发编程技术(一)
|
3天前
|
算法 Java 程序员
深入理解Java的垃圾回收机制
【9月更文挑战第31天】在Java的世界里,有一个默默守护者,它负责清理不再使用的对象,确保内存的有效利用。这就是垃圾回收器(Garbage Collector, GC)。本文将带你一探究竟,了解它是如何工作的,以及为何我们需要关心它的存在。
|
3天前
|
运维 负载均衡 监控
提升系统性能:高效运维的秘密武器——负载均衡技术
在当今数字化时代,系统的高可用性和高性能成为各类企业和组织追求的目标。本文旨在探讨负载均衡技术在运维工作中的关键作用,通过深入分析其原理、类型及实际应用案例,揭示如何利用这项技术优化资源分配,提高系统的响应速度和可靠性,确保用户体验的稳定与流畅。无论是面对突如其来的高流量冲击,还是日常的运维管理,负载均衡都展现出了不可或缺的重要性,成为现代IT架构中的基石之一。
13 4
|
6天前
|
传感器 监控 数据可视化
【Java】智慧工地解决方案源码和所需关键技术
智慧工地解决方案是一种新的工程全生命周期管理理念。它通过使用各种传感器、数传终端等物联网手段获取工程施工过程信息,并上传到云平台,以保障数据安全。
28 7
|
5天前
|
监控 Java 程序员
深入理解Java中的垃圾回收机制
【9月更文挑战第29天】在Java编程的海洋中,垃圾回收(Garbage Collection, GC)是维持内存健康的灯塔。本文将带你探索GC的奥秘,从它的本质、工作机制到优化策略,让你的代码像海豚一样优雅地畅游。
|
4天前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
16 2
|
5天前
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
15 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
11天前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
36 6
|
8天前
|
监控 算法 Java
深入解析Java中的垃圾回收机制
本文旨在全面解析Java的垃圾回收机制,探讨其工作原理、常见算法以及在实际开发中的应用。通过对这一重要主题的深入分析,希望帮助读者更好地理解Java虚拟机(JVM)如何管理内存,从而编写出更高效、稳定的Java应用程序。
下一篇
无影云桌面