Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有两种算法的替代实现,或两种策略。我当然可以用 jmh 对它们进行基准测试。但是我可以通过查看反编译的字节码获得任何信息吗?
一个非常原生的例子是计算if_*复杂性aload_*的指令或内存消耗的指令。
if_*
aload_*
不,您无法从字节码中获得任何结果。Javac 根本不会优化您的代码,它与您的 Java 代码几乎相同,只是在字节码表示中。JIT 将在优化后更改您的所有代码。如果您查看已编译的 asm 代码,您甚至无法说出代码的性能。衡量它的一种方法 - 运行它。