zoukankan      html  css  js  c++  java
  • Davlik虚拟机

    过几天得去面试,感觉原来做的东西都忘了。

    有点累,无意看了下二师兄的小论文,想来原先自己也参与过一点点,所以记录下:

    Dalvik虚拟机中共有3种解释器,分别时SWITCH_INTERP,THREADED_INTERP,MTERP_INTERP

    SWITCH_INTERP,通过switch跳转实现dex字节码的解释执行,因为switch一般通过(索引+二分查找)实现,所以……

    THREADED_INTERP,通过预先建立好解释dex字节码的跳转表,通过go语句以索引方式实现解释执行,所以效率明显由于SWITCH_INTERP……

    MTERP_INTERP,以汇编形式实现:使用rIBASE记录解释字节码,需要执行代码的首地址,这些代码都是按照字节码的编码号进行顺序排放,并且限定每种字节码所需执行代码大小为64字节。这样就可以通过add pc, rIBASE, _reg, lsl #6,即rIBASE与固定偏移的和,跳转到特定需要执行的代码处,执行相应的操作,由于相应的THREADED_INTERP需要更多的汇编语句及更多的访存,因此MTERP_INTERP的解释性能更高(解释执行的代码  dvmMterpStdRun())

  • 相关阅读:
    例3-7 统计字符
    大一第四周
    例3-5 四则运算
    MyBatis 查询缓存
    MyBatis 延迟加载
    Mybatis 关联查询
    Mybatis 动态SQL
    MyBatis mapper动态代理
    MyBatis 增删改查
    MyBatis 框架搭建
  • 原文地址:https://www.cnblogs.com/openix/p/3162496.html
Copyright © 2011-2022 走看看