什么是mterp意思?

时间:2014-03-05 03:01:51

标签: android virtual-machine dalvik

dalvik源代码中有一个名为mterp的文件夹。它的路径是/vm/mterp 我想知道mterp这个词是什么意思?

3 个答案:

答案 0 :(得分:2)

'm'代表“模块化” - mterp是模块化解释器。

这是前一个实现的演变,实际上是一个怪物switch声明。如mterp README中所述:

  

这是Dalvik解释器的源代码。的核心   原始版本实现为单个C函数,但是   提高性能我们在装配中重写了它。为了做到这一点   未来的装配端口更容易,更不容易出错,我们使用模块化   允许开发特定于平台的代码一个操作码的方法   一次。

以操作码粒度切换实现的能力非常有价值,因为它允许我们通过快速更改配置文件来交换C和汇编实现 - 如果您怀疑汇编版本中的某些内容不是很方便工作得很好。当我们想要添加浮点支持时,我们只是编写了新的操作码片段并创建了一个新的config file,它取代了依赖于浮点的指令。

该结构还使porting the interpreter对于全新的平台变得更加容易,因为您可以从“便携式”解释器演变成一口大小的“快速”解释器。

答案 1 :(得分:0)

来自Dalvik "mterp" README

==== Overview ====

This is the source code for the Dalvik interpreter.

显然,mterp是Dalvik使用的口译员的名字。它是VM的一部分,它直接执行或执行代码。

答案 2 :(得分:0)

mterp 是dalvik vm解释器的模块

在语言VM中,VM中有许多模块,如HeapManager(GC),JNI(java本机接口),字节码解释器等。

这里mterp是Bytecode解释器的模块。你应该知道,Dalvik vm字节码是DEX格式。在vm解释器的实现中,mterp包含许多不同的拱门,如X86,arm,misp。

如果你想学习这个模块,我建议你概述一下Dalvik VM的/docs/java-bytecode.html。然后研究mterp的c实现。