[讨论] jvms的几个疑问
chenk818
2011-09-15
1、对于vm来说,执行每个指令的时间是否有区别?如dstore,iflt
2、vm调用方法新加了个invokedynamic,看了文档半天没明白。这个指令以前是没有的,想请教一下,该指令是做什么用的,新加出来为了解决什么问题? |
|
RednaxelaFX
2011-09-15
1、JVM的字节码指令只规定了语义,不规定性能。在常见实现里,即便是用解释器来实现,JVM的各个字节码指令的性能也是不一样的;更有可能的是经过运行时的动态编译后某些字节码融合了或消失了,此时关注单个字节码的性能是无意义的。
2、invokedynamic最大的意义在于:原本的4个invoke-指令都强制规定了分派规则,而invokedynamic将分派决定交给了上层的Java代码来控制。这样,Java程序就可以对某个调用点(CallSite)有更高的控制权,实现更高的自由度:例如说按名字分派,按实际参数的类型来分派,等等。 |
相关讨论
相关资源推荐
- ⭐UI自动化工具轻松实现微信消息收发⚡朋友圈爬取⁉️
- ApacheFlink极客挑战赛垃圾图片分类赛道冠军方案分享.pdf
- 极客看过来,开源的家庭自动化方案——openHAB
- 极客DIY开源方案分享——数字幅频均衡功率放大器设计(实用的嵌入式电子设计作品软硬件综合实践)
- 极客DIY开源方案分享——智能家居你也可以做,何不DIY个自动窗帘升降控制系统?(纪念我的职业生涯处女作、曾获校赛一等奖作品、上古汇编语言编程)
- C/C++开发人员要了解的几大著名C/C++开源库
- 全网最全 python 库之 selenium 自动化使用教程
- 逐鹿中原极客之光——记首届Real World国际CTF网络安全大赛.pdf
- Python简单网页爬虫——极客学院视频自动下载
- 极客学院简单demo——天气预报