0

假设我有两种算法的替代实现,或两种策略。我当然可以用 jmh 对它们进行基准测试。但是我可以通过查看反编译的字节码获得任何信息吗?

一个非常原生的例子是计算if_*复杂性aload_*的指令或内存消耗的指令。

4

1 回答 1

0

不,您无法从字节码中获得任何结果。Javac 根本不会优化您的代码,它与您的 Java 代码几乎相同,只是在字节码表示中。JIT 将在优化后更改您的所有代码。如果您查看已编译的 asm 代码,您甚至无法说出代码的性能。衡量它的一种方法 - 运行它。

于 2017-12-13T12:27:29.093 回答