写点什么

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:26587
用户头像

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

关注

评论

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

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

架构师训练营 - 大作业

张明森

anyRTC RTSP转WebRTC方案

anyRTC开发者

音视频 WebRTC 直播 RTC 安卓

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

读书笔记之《普罗普:故事形态学》

AI代笔

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营-第1周课后作业(1期)

阿甘

介绍

剑心

学习

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

血的教训!千万别在生产使用这些 redis 指令

楼下小黑哥

Java redis 生产事故

架构师训练营第 0 期 期末大作业

无名氏

面试常考算法题之 Top K 问题

小齐本齐

数据结构 算法

oeasy 教您玩转 linux 010215 随机谚语 fortune

o

USDT跑分承兑系统开发,区块链支付平台搭建

我写了一个TypeScript虚拟机。

渔子长

Java typescript 大前端 deno Node

架构师训练营-第1周学习总结(1期)

阿甘

UML

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端 Ubuntu20.04

哈哈,成为作者了

大海

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

甲方日常 15

句子

工作 随笔杂谈 日常

Week 13 学习总结

Jeremy

Week 13 命题作业

Jeremy

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

微服务 身份认证 Go 语言

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

腾讯云大数据

大数据

Clickhouse在大数据分析平台-留存分析上的应用

腾讯云大数据

大数据

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

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