NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

第 0 期架构训练营模块 3 作业

架构实战营

通过 Netty、ZooKeeper 手撸一个 RPC 服务!

Yano

Java 微服务 Netty RPC

借鉴AQS的CHL思路解决消息多线程消费顺序ACK问题

Coder的技术之路

AQS 多线程 高并发 架构设计 消息队列

9个国外最佳免费编程学习一站式网站,谁用谁知道!

北游学Java

Java c++ php JavaScript

用组合式创新模型做产品建模

石云升

组合式创新 5月日更 产品建模

2021年程序员可以做哪些副业?

孙叫兽

程序员 副业 副业赚钱

消息队列构架设计文档

Chris Cheng

架构实训营 作业三——消息队列架构设计文档

开拓纪

第三章作业 #架构实战营

Android团队怎样搭建自己的开发仓库

寻找生命中的美好

android maven nexus library

事关每个程序员的职业规划与履历

孙叫兽

生涯规划 程序员 职业规划 人生修炼

消息队列详细架构设计

Vincent

架构训练营

模块1作业

刘丽

GoF23 中的对象行为模式草图!

鲁米

消息队列架构设计

俞嘉彬

架构实战营

Spark中将DAG划分为Stage核心算法

五分钟学大数据

spark 5月日更

ceph-csi源码分析(6)-rbd driver-nodeserver分析(下)

良凯尔

Kubernetes 源码分析 Ceph CSI

FFmpeg音视频处理工具三剑客(ffmpeg、ffprobe、ffplay)

liuzhen007

音视频 5月日更

Java Stream 源码分析

Yano

Java stream

模块三作业 - 消息队列系统架构设计文档

冬天的树

花了两天时间用html+css+js做了一个网页版坦克大战游戏

孙叫兽

JavaScript html 坦克大战

如何上架自己的应用到各大应用商店?

孙叫兽

证书 安卓 appstore 应用宝 引航计划

架构实战营 - 模块 03 作业

架构实战营

模块3作业 消息队列架构设计文档

TH

架构实战营

区块链如何赋能“链”金融

CECBC

金融

吐槽OOP

顿晓

5月日更

ceph-csi源码分析(5)-rbd driver-nodeserver分析(上)

良凯尔

Kubernetes 源码分析 Ceph CSI

所谓区块链去中心化社交产品,究竟是创新还是复旧?

CECBC

区块链

网站优化第一次网页加载的速度的办法与思路。

孙叫兽

性能优化 网站 性能调优

Go 杂谈——interface与nil的细节让我出了线上BUG

HZFEStudio

Go 语言

模块3 学习总结

TH

架构实战营

我的Serverless实战——引领云计算的下一个十年

孙叫兽

云计算 Serverless #Serverless

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