gpt4 book ai didi

android - dexopt 和 dex2oat 的区别?

转载 作者:IT王子 更新时间:2023-10-29 00:03:57 43 4
gpt4 key购买 nike

Google 正在从 Dalvik 迁移到 ART(Android 运行时)。

我试图了解它将如何提高性能。

我找到的最好的解释是下图:

Dalvik and ART

其中一个发生变化的主要组件是 dexoptdex2oat

由于我对这些不太了解,谁能解释其中的区别以及这将如何提高性能?

最佳答案

dexopt 对 dex 文件做了一些优化。它会使用包含被调用方法的 vtable 索引的优化版本替换虚拟调用指令,这样它就不必在执行期间执行方法查找。

dexopt的结果是一个odex(优化的dex)文件。这和原始的 dex 文件非常相似,只是它使用了一些优化的操作码,比如优化的调用虚拟指令。

dex2oat 获取一个 dex 文件并编译它。结果本质上是一个elf文件,然后 native 执行。因此,它不再拥有由虚拟机解释的字节码,而是拥有可由处理器本地执行的 native 代码。这称为 AOT(提前)编译。

这两个工具都正常运行 at install time on the device .

另一个需要考虑的因素是 dalvik 使用了 JIT(即时)编译器——这意味着它还能够将字节码编译为 native 代码。然而主要区别在于 ART 会提前编译所有内容,而 dalvik 仅使用启发式方法编译字节码的子集以检测最频繁执行的代码,并在执行期间编译。

关于android - dexopt 和 dex2oat 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26254538/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com