首页 > 解决方案 > 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 代码吗?非常感谢。

标签: androidcompiler-optimizationjitjvm-hotspotopenj9

解决方案


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

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

对于 Android,您使用 Android ART 编译器,它在一个多步骤的过程中从类文件编译到设备外部的 dex 文件和 apk 文件,然后在 Android 设备上编译为原生代码。


推荐阅读