dalvik源代码中有一个名为mterp
的文件夹。它的路径是/vm/mterp
我想知道mterp
这个词是什么意思?
答案 0 :(得分:2)
'm'代表“模块化” - mterp是模块化解释器。
这是前一个实现的演变,实际上是一个怪物switch
声明。如mterp README中所述:
这是Dalvik解释器的源代码。的核心 原始版本实现为单个C函数,但是 提高性能我们在装配中重写了它。为了做到这一点 未来的装配端口更容易,更不容易出错,我们使用模块化 允许开发特定于平台的代码一个操作码的方法 一次。
以操作码粒度切换实现的能力非常有价值,因为它允许我们通过快速更改配置文件来交换C和汇编实现 - 如果您怀疑汇编版本中的某些内容不是很方便工作得很好。当我们想要添加浮点支持时,我们只是编写了新的操作码片段并创建了一个新的config file,它取代了依赖于浮点的指令。
该结构还使porting the interpreter对于全新的平台变得更加容易,因为您可以从“便携式”解释器演变成一口大小的“快速”解释器。
答案 1 :(得分:0)
==== 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实现。