大连仟亿科技
客服中心
  • 电话
  • 电话咨询:0411-39943997
  • 手机
  • 手机咨询:15840979770
    手机咨询:13889672791
网络营销 >更多
您现在的位置:仟亿科技 > 新闻中心 > 常见问题

OpenJDK上进行动态调用

作者:billionnet 发布于:2012/6/7 18:10:16 点击量:

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
来自:http://www.infoq.com/cn/news/2008/09/invokedynamic_day



分享到:


评论加载中...
内容:
评论者: 验证码:
  

Copyright@ 2011-2017 版权所有:大连仟亿科技有限公司 辽ICP备11013762-1号   google网站地图   百度网站地图   网站地图

公司地址:大连市沙河口区中山路692号辰熙星海国际2215 客服电话:0411-39943997 QQ:2088827823 42286563

法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明