JIT优化后如何查看Android代码?
How to view Android code after JIT optimization?
希望你一切都好
在编程的时候,我开始怀疑我的懒惰(但漂亮)的代码最终是否会得到优化,我不需要关心优化与否。所以我 运行 进行了一些搜索,发现 HotSpot 或 OpenJ9 是我可以用来将 java 代码编译成程序集并对其进行优化的工具。
所以我想,如果我将我的 example.kt 代码转换为 example.class 和 运行 HotSpot 或 J9 example.class,我可以查看优化代码。
我在下面尝试过,但它只产生了一个错误代码。
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 将编译为汇编代码,汇编代码是针对您 运行ning 平台的汇编代码,因为您的程序是 运行ning 或预先编译的。它将从 class 个文件编译为该平台上的本机代码。
由于无法在 Android 上 运行 Hotspot 或 J9,因此无法以这种方式针对 Android 进行编译。
对于Android,您使用Android ART编译器,它在多步过程中从class文件编译到设备外的dex文件和apk文件,然后在Android 设备到本机代码。
希望你一切都好
在编程的时候,我开始怀疑我的懒惰(但漂亮)的代码最终是否会得到优化,我不需要关心优化与否。所以我 运行 进行了一些搜索,发现 HotSpot 或 OpenJ9 是我可以用来将 java 代码编译成程序集并对其进行优化的工具。
所以我想,如果我将我的 example.kt 代码转换为 example.class 和 运行 HotSpot 或 J9 example.class,我可以查看优化代码。
我在下面尝试过,但它只产生了一个错误代码。
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 将编译为汇编代码,汇编代码是针对您 运行ning 平台的汇编代码,因为您的程序是 运行ning 或预先编译的。它将从 class 个文件编译为该平台上的本机代码。
由于无法在 Android 上 运行 Hotspot 或 J9,因此无法以这种方式针对 Android 进行编译。
对于Android,您使用Android ART编译器,它在多步过程中从class文件编译到设备外的dex文件和apk文件,然后在Android 设备到本机代码。