写点什么

Java 9 发布在即,Oracle OpenJDK 着手优化 Unsafe 类

  • 2016-05-06
  • 本文字数:1093 字

    阅读完需:约 4 分钟

java 9 正式版预计在 2017 年 2 季度发布,目前大部分 JEP 已经基本成型。其中,最关键特性或许是 JEP 261 , 该 JEP 实现了 java 平台的模块系统, 具体说明可以参见 JSR376 。 模块系统依赖于 JEP260 (封装了大部分内部 API),导致的结果是 JEP193 定义的多个句柄会暴露 sun.misc.Unsafe 类的功能。此前 Info报道过致力于解决sun.misc.Unsafe 句柄问题的团队,可能的解决方案细节亦可参见另一篇报道

Bug 8149159 最近被提交到 JDK Bug 管理系统, 建议优化和清理 Unsafe 类, 包括将参数检查从本地代码移入 Java(简化 JIT)、 sun.misc.Unsafe 类和 jdk.internal.misc.Unsafe 类的统一、 以及本地代码的整体清理。

2 月 18 日,Oracle 工程师 Mikael Vidstedt 向 OpenJDK 开发者社区提交了两个补丁(分别针对 OpenJDK 和 OpenJDK HotSpot VM)

关于这两个补丁,Vidstedt 总结道:

  • 避免代码重复,sun.misc.Unsafe 将全部实现委托给 jdk.internal.misc.Unsafe,这意味着 java 虚拟机 (特别是 unsafe.cpp)不再需要关心 s.m.Unsafe 的实现。
  • s.m.Unsafe 的委托方法通常会被内联,但是为了避免性能下降的风险,仍然添加了 @ForceInline 注解
  • 更新文档,指明用户应该确保 Unsafe 类的参数正确
  • 参数检查从 Unsage.cpp 移入 java,简化本地代码以及允许 JIT 进一步优化
  • 放松了特定参数的检查,比方说最近引入的 U.copySwapMemory 没有检查空指针。具体原因可以参考 j.i.m.U.checkPointer 的文档。除了 U.copySwapMemory,现在 Unsafe 类方法也都没有对参数执行 NULL 检查
  • 在 U.copySwapMemory 类的基础上,对 j.i.m.U.copyMemory 增加了一个测试案例。请随时提醒我合并过来(本该如此)

在 Vidstedt 看来,Usage 类的清理算是“相当激进”了,值得注意的地方有:

  • Unsafe_ 方法以及 unsafe.cpp 中的其他本地方法被申明为静态方法
  • 新增 unsafe.hpp 代码文件,文件中移入 VM 其他组件的一些方法。移除部分“extern”函数声明(不要过度使用 extern)
  • 对于不怎么用到的 UNSAFE_LEAF,移除警告性质的注释(没有必要,只是个 VM_LEAF)
  • 一些简单的 leaf 方法使用 UNSAFE_LEAF
  • UNSAFE_ENTRY/UNSAFE_END 代码块新增大括号,帮助自动缩进
  • 移除未使用的 Unsafe_<…>##140 形式的函数和宏
  • 更新宏参数,与 unsafe.cpp 的宏定义保持一致
  • 更换带断言的参数检查,正如前面提及,这些检查移入了 j.i.m.Unsafe,移除所有 s.m.Unsafe 相关的代码

查看英文原文: Oracle’s OpenJDK Cleanup of “Unsafe” Implementation


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-06 19:004107

评论

发布
暂无评论
发现更多内容

MiniMax 将完成近 3 亿美元融资,估值超 40 亿美元;Grok 上线动漫 AI 伴侣功能丨日报

声网

Wolfram Mathematica 激活密钥 Mac数学软件

Rose

上完ERP,效率却没有提升,看看你是否做到了这些!

积木链小链

数字化转型 ERP 智能制造

智能档案柜助力政府机构实现档案智能精细化管理

斯科信息

档案管理 斯科信息 RFID技术

京东拍立淘API-以图搜图中的图像搜索算法

tbapi

京东图片搜索接口 京东拍立淘接口 京东拍立淘API 京东图片搜索API

金融行业DNS安全脆弱性和构建防护体系必要性的探讨

防火墙后吃泡面

影视跟踪抠像合成 Boris FX Silhouette 2025破解教程

Rose

VMware Cloud Foundation Operations HCX 9.0 - 跨云工作负载迁移和互通

sysin

vcf hcx

深度剖析 Claude 4 的系统提示词(保留提示词原文,并提供译文)

Baihai IDP

程序员 AI LLM 提示词工程 Claude 4

阿里云 Serverless 重塑创蓝云智通信底座,引领行业变革!

阿里巴巴云原生

Serverless

Tayasui Sketches - School Pro Mac简易绘图工具

Rose

VMware Cloud Foundation 9.0 之 VCF Installer 的新增功能

sysin

vcf

【IoTDB 线上小课 17】开源 ≠ 免费,3 分钟总结开源商用指南

Apache IoTDB

自 4O 之后,Voice 从 Assistant 到 Agent,新机会都藏在哪些场景里?|Voice Agent 学习笔记

声网

Microsoft Office LTSC 2024 v16.99 中文永久激活版

Rose

Dynamic Wallpaper for Mac 动态壁纸,包括天空、海洋、火焰、星空等

Rose

京东商品API赋能社媒电商:从数据采集到精准营销实战

tbapi

京东商品详情接口 京东API

VCF Operations HCX 9.0 新增功能

sysin

智野双全一车搞定 豪华智能越野“第一车”即将发布

极客天地

基于YOLOv8的田间杂草检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

飞蜂全能PDF格式转换器 PDF to PowerPoint Pro for mac

Rose

Mac经典网页设计RapidWeaver 9直装版

Rose

影视后期特效合成 The Foundry NUKE v15.1v4 激活补丁及详细安装教程

Rose

政企学习考试系统(源码+文档+讲解+演示)

深圳亥时科技

VMware Cloud Foundation 9 的部署路径

sysin

vcf

跨国数仓迁移背后的统一存储格式创新-Append Delta Table

阿里云大数据AI技术

人工智能 数据处理 数据迁移 存储技术 #大数据

音频降噪修复增强 iZotope RX 11 高级解锁版-mac/win

Rose

美政府批准英伟达H20芯片面向中国销售,不确定性依旧存在

PowerVerse

VMware Cloud Foundation 9 之部署 VCF Installer

sysin

vcf

Playwright 极速入门:1 小时搞定环境搭建与首个测试脚本

测试人

黑龙江二级等保的合规路径

等保测评

Java 9发布在即,Oracle OpenJDK着手优化Unsafe类_Java_Monica Beckwith_InfoQ精选文章