写点什么

OpenJDK 上可以进行动态调用了

  • 2008-09-04
  • 本文字数:744 字

    阅读完需:约 2 分钟

John Rose 宣布了“国际动态调用日(International InvokeDynamic Day)”,以此来庆祝其通过’invokedynamic’指令首次成功调用了动态方法:

今天凌晨,JVM 首次针对 invokedynamic 指令处理了一个完全的引导周期、链接常量池入口、创建具体的调用地址对象、寻找并调用每个类的引导方法、将具体的调用地址链接到方法句柄,然后通过方法句柄重新高速调用链接的调用地址 999 次。尽管方法签名一样,但调用者所指的方法名与被调用的是不同的。链接是通过随机的、引导方法中手写的 Java 代码来实现的。

“invokedynamic”指令是为多语言虚拟机(叫做’ Da Vinci Machine ’)所计划的众多特性之一。Da Vinci 中所有计划的增强特性都在 MLVM 站点的子项目部分进行了描述。动态调用也是 JSR-292 的一部分, InfoQ 早前已经对其进行了讨论,同时它也是对一些针对核心 Java VM 的实验性的 Da Vinci 工作的一种改编。John Rose 所发表的声明表明’invokedynamic’首次运行在 OpenJDK hotspot 虚拟机上。

动态调用是针对 JVM 的动态语言开发者最期望的特性之一。 Gilad Bracha 在InfoQ 上讨论过动态调用背后的理论以及为何它是一种必要增强的原因。

JRuby 的领导者 Charles Oliver Nutter 就 John Rose 的声明发表了以下看法:

太棒了…待今明两天 JRuby 1.1.4 发布后我就要进行一次动态调用。正好用它作为秋季会议的演示。

Groovy 的项目经理 Guillaume Laforge 用简单的一句话表示祝贺:

香槟!:-)

但是对于动态调用来说还有很长的一段路要走。当然,动态语言(如 JRuby 和 Groovy)必须适时利用新的指令。Rose 指出对于核心实现来说依旧还有很多工作需要完成:

至于 JVM 代码,它只工作在 x86/32 上;下一步工作就是将汇编码移到正确的文件中并完成对 x86/64 和 SPARC 的支持。

查看英文原文: Dynamic Invocation Runs on OpenJDK

2008-09-04 07:26455
用户头像

发布了 88 篇内容, 共 262.9 次阅读, 收获喜欢 8 次。

关注

评论

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

Flutter 异常监控、符号解析及聚合分流实践

贝壳大前端技术团队

flutter 监控 异常 符号化

TMF国际大奖技术揭秘:5G智能动态步长

鲸品堂

5G 计费模式 通信运营商

数字人民币的基础:共识与信任!

CECBC

人脸检测实战进阶:使用 OpenCV 进行活体检测

AI浩

坐标东京,诚招IT工程师~

马农驾驾驾

软件 软件开发 日本 IT 日语

Java中对象的初始化生成过程

编程江湖

Java JAVA开发 java编程

Prometheus Exporter (十一)Kafka Exporter

耳东@Erdong

kafka Prometheus exporter 11月日更

Pulsar 在2.8升级过程中需要注意的TopicPolicy问题

Zike Yang

Apache Pulsar 11月日更

大厂算法面试之leetcode精讲7.双指针

全栈潇晨

LeetCode 算法面试

“元宇宙”究竟是什么

华为云开发者联盟

云计算 AI AR vr 云宇宙

对元宇宙 我们期待什么?

CECBC

路由器或交换机配置中line vty 0 4到底是什么意思?

Ethereal

交换机 路由器 网络技术

区块链将掀开人类的伟大时代

CECBC

.NET6新东西--插值字符串优化

喵叔

11月日更

Webpack 性能之使用 Cache 提升构建性能

编程江湖

大前端 webpack

Hadoop、Spark、Hive到底是什么,做算法要不要学?

编程江湖

大数据

还有人不知道鸿蒙智联设备认证咋搞?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

什么是IS-IS中间系统到中间系统?网工、运维必看!

Ethereal

网络技术

使用MRS CDL实现实时数据同步的极致性能

华为云开发者联盟

延迟 实时数据 MRS CDL 吞吐 实时数据复制

Android C++系列:Linux信号(一)

轻口味

c++ android jni 11月日更

HBase 调优详细剖析

五分钟学大数据

11月日更

不是吧,都2021年了你别说你还不会Spring MVC基本应用

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

linux重要的目录之etc

入门小站

Linux

在线文本对比工具

入门小站

工具

Linux 中的 15 个强大的 firewall-cmd 命令,牛牛牛!

Ethereal

Linux 运维 防火墙 Firewalld防火墙

【死磕Java并发】-----J.U.C之重入锁:ReentrantLock

chenssy

11月日更 死磕 Java 死磕 Java 并发

听说版本会说话,你相信吗?

程序那些事

版本控制 程序那些事 版本管理 版本升级 11月日更

Java开发之集成开发环境

@零度

JAVA开发 Java学习 IED

Flutter - TabController监听index

坚果

flutter 11月日更

历史上最伟大的一次 Git 代码提交

沉默王二

git

spark2.0笔记

Clarke

OpenJDK上可以进行动态调用了_Java_R.J. Lorimer_InfoQ精选文章