use*_*650 6 android virtual-machine dalvik
mterpdalvik源代码中有一个文件夹.它的道路是/vm/mterp.
我想知道这个词mterp是什么意思?
“m”代表“模块化”——mterp 是模块化解释器。
它是先前实现的演变,而先前的实现实际上是一个怪物switch声明。正如 mterp自述文件中所述:
这是 Dalvik 解释器的源代码。原始版本的核心是作为单个 C 函数实现的,但为了提高性能,我们用汇编重写了它。为了使这个和未来的汇编端口更容易且不易出错,我们使用了一种模块化方法,允许一次一个操作码开发特定于平台的代码。
以操作码粒度切换实现的能力非常有价值,因为它允许我们通过快速更改配置文件来在 C 和汇编实现之间进行交换——如果您怀疑汇编版本中的某些内容运行不正常,则非常方便。当我们想要添加浮点支持时,我们只需编写新的操作码片段并创建一个新的配置文件来替换与浮点相关的指令。
该结构还使得将解释器移植到全新平台变得更加容易,因为您可以从“便携式”解释器发展为小型的“快速”解释器。
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |