JIT优化后如何查看Android代码?

问题描述

希望你一切都好。

在编程时,我开始怀疑我的懒惰(但漂亮)的代码最终是否会得到优化,而我不需要关心优化与否。所以我进行了一些搜索,发现 HotSpot 或 OpenJ9 是我可以用来将 Java 代码编译成程序集并对其进行优化的工具。

所以我想,如果我将我的 example.kt 代码转换为 example.class 并在这个 example.class 上运行 HotSpot 或 J9,我可以查看优化的代码

我在下面尝试过,但它只产生了一个错误代码

java -XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,com.xxx.android.Example ~/Desktop/.../jarName.jar
Error: Could not find or load main class com.xxx.android.Example

如果有人以前尝试过,请您帮我找到一种方法来获得优化的 android 代码吗?非常感谢。

解决方法

Hotspot 和 OpenJ9 将编译为汇编,汇编代码是为您运行它们的平台、程序运行时或预先汇编的。它将从类文件编译为该平台上的本机代码。

由于您无法在 Android 上运行 Hotspot 或 J9,因此您无法以这种方式为 Android 进行编译。

对于 Android,您使用 Android ART 编译器,该编译器在从类文件到设备外的 dex 文件和 apk 文件的多步骤过程中进行编译,然后在 Android 设备上编译为本机代码。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...