zoukankan      html  css  js  c++  java
  • 8.1.13 _quick 指令

    8.1.13 _quick 指令

    Java虚拟机的第一版规范中描述了一种用来加速字节码解释的技术,Sun早期的一种java虚拟机实现中曾经使用过它。这种方案是,如果常量池入口已经被解析过,使用常量池人口的操 作码会被一个“_quick”操作码取代。当虚拟机遇到一个_quick指令时,它就知道常量池人口已 经被解析过了,所以这条指令可以执行得更快。

    Java虚拟机的核心指令集包含200条单字节操作码,它们都可以在附录A中找到在class文 件中只会见到这200条操作码。使用“_quick”技术的虛拟机实现内部还另外使用25条“_quick”单字节操作码。

    举例来说,当使用_quick技术的虚拟机解析一个ldc指令(操作码0x12 )引用的常量池人口时,它在字节码流中用ldc_quick指令(操作码Oxcb )替換ldc操作码字节。在Sun的早期虚拟机 中,这项技术是属于直接引用替换符号引用这个操作的一部分。

    除了用_quick操作码覆盖原来的普通操作码之外,使用_quick技术的虚拟机对某些指令还会用表示直接引用的数据覆盖指令的操作数。比如,除了把invokevirtual操作码替换成 invokcvirtual_quick之外,虚拟机还把方法表偏移量和参数的个数放入每个invokevirtual指令后面 的两个操作数字节中。在invokevirtual_quick操作码后面的字节码流中直接用方法表偏移量,节约了在解析过的常量池入口中査找偏移量的时间。

    8.1.14示例:Salutation程序的连接

    Java连接模型的例子如下面的Salutation程序:

  • 相关阅读:
    ASP.NET调用word开发环境下正常,iis下报错
    关于CSS的两本书的感觉
    蓝牙模块在HHARM2410上的移植
    关于Activity和Task的设计思路和方法
    用蓝牙连接debian和诺基亚手机
    15.2 连接蓝牙设备
    蓝芽:Linux与手机(at,ftp)
    UBUTUN 通过蓝牙连接Hoary和诺基亚手机
    php class类用法总结 Leone
    提高PHP编程效率的53个要点 Leone
  • 原文地址:https://www.cnblogs.com/mongotea/p/11979755.html
Copyright © 2011-2022 走看看