【发布时间】:2018-05-21 12:24:10
【问题描述】:
假设我有两种算法的替代实现,或两种策略。我当然可以对它们进行基准测试,例如江湖但是我可以通过查看反编译的字节码获得任何信息吗?
一个非常原生的例子是计算 if_* 指令的复杂性或 aload_* 指令的内存消耗。
【问题讨论】:
-
你说的好像是字节码,不是反编译的代码。
-
对于CC,有什么意义?如果你有源代码,直接测量它的CC。如果没有,知道 CC 不会帮助您做任何事情。实际上,此时您需要关注正确性而不是易于维护。 (维护不是你关心的......)
-
对于性能,答案可能是否定的。甚至没有算法复杂度。我想说,分析字节码或反编译代码几乎没有什么收获。
-
您混淆了几个术语。圈复杂度与您使用 jmh 测量的性能无关,字节码与“反编译代码”无关,
aload_指令与内存消耗无关,甚至与远程无关。而且,当然,内存消耗和圈复杂度之间没有关系……
标签: java performance bytecode decompiling javap