写点什么

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

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

关注

评论

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

哪些工作计划管理软件适合团队协作?10款详解

爱吃小舅的鱼

工作计划管理软件

全面图解Docker架构设计:掌握Docker全链路思维/实战/优化(小白到大师篇[3])

肖哥弹架构

Docker DevOps

哪些工作管理系统适合团队协作?9款工具推荐

爱吃小舅的鱼

工作管理系统

Clipboard Manager for mac(mac剪贴板管理软件)

Mac相关知识分享

PIRF-411-Being a dad

EchoZhou

English

Ubuntu中设置代理的方式

百度搜索:蓝易云

三节点TiDB 集群内存控制文档

TiDB 社区干货传送门

Debian使用systemd自动挂载Samba

百度搜索:蓝易云

TiDB排行再升5位;盘点平凯数据库的发明专利(2024上半年公布)

TiDB 社区干货传送门

数据库架构选型

ICT项目系统全解析:选型、使用与优势大对比

爱吃小舅的鱼

项目管理 ICT

远程连接mysql报错“Host xxx is not allowed to connect to this MySQL server“解决办法

百度搜索:蓝易云

全面图解Docker架构设计:掌握Docker全链路思维/实战/优化(小白到大师篇[2])

肖哥弹架构

Docker DevOps

FinOps现状分析:行业趋势与未来展望

雅菲奥朗

FinOps 云成本管理 FinOps 认证 云财务管理

解决sass问题:npm ERR! node-sass@9.0.0 postinstall: `node scripts/build.js`

百度搜索:蓝易云

为什么JWT要结合Redis使用

百度搜索:蓝易云

Debian安装Docker环境

百度搜索:蓝易云

macOS Sequoia 15(Macos15系统) v15.0.1正式版

Mac相关知识分享

C++编译静态成员函数报错: “osgGA::DriveManipulator::setEye”: 非静态成员函数的非法调用

百度搜索:蓝易云

征程6 工具链常用工具和API 整理

地平线开发者

自动驾驶 算法

征程6 NV12 理论与代码详解

地平线开发者

自动驾驶; 算法、

从0到1:培训机构排课小程序开发笔记一

CC同学

Linux之yum/git的使用

百度搜索:蓝易云

高效计时和任务管理软件RH Timer pro for Mac

Mac相关知识分享

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated.

百度搜索:蓝易云

这款产品连续三年被选为“未来你想使用的数据库”第一名

TiDB 社区干货传送门

数据库架构选型 数据库前沿趋势

2024年9月文章一览

codists

编程人

Centos7安装chrome+chromedriver以便实现selenium自动化详细教程

百度搜索:蓝易云

哪款多任务管理系统适合你?2024年10大选择

爱吃小舅的鱼

多任务管理系统

AI大模型技术前沿:人工智能大模型应用工程师如何塑造行业未来?

雅菲奥朗

人工智能 大模型 人工智能工程师 人工智能工程师培训 人工智能大模型应用工程师

如何选择工作日程管理系统?9款工具指南

爱吃小舅的鱼

工作日程管理工具

数据恢复软件AnyMP4 Data Recovery for mac

Mac相关知识分享

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