Java 如何计算代码路径中的指令数?

Java 如何计算代码路径中的指令数?,java,Java,考虑以下代码段 for (int i = targetIndex; i < totalInTarget; i++) { ++step; _KVPair kvp = target.get(i); if (previousKey == null) { ++step; currentKey = kvp.getKey();

考虑以下代码段

        for (int i = targetIndex; i < totalInTarget; i++) {
            ++step;
            _KVPair kvp = target.get(i);

            if (previousKey == null) {
                ++step;
                currentKey = kvp.getKey();
                  ...
for(int i=targetIndex;i
是否有办法让我知道所采取的指示数量:

  • 每次迭代
  • 每个if/else决策
没有使用
++step

手动计算它们,您是否查看了使用来将其分解为JVM指令?

您是否查看了使用来将其分解为JVM指令?

简短回答,否

您可以使用javap向您显示字节码,但这并不能直接转换为CPU指令(如果您的意思是这样的话)。指令的数量将因解释或JIT、如何优化以及可能的其他因素(GC选项)而有所不同。

简短回答,否


您可以使用javap向您显示字节码,但这不能直接转换为CPU指令(如果您的意思是这样的话)。指令的数量将因解释或JIT、如何优化以及可能的其他因素而有所不同(GC选项?).

如何使用输出计算总迭代/决策?您需要确定每行有多少JVM指令,并进行一些计算。由于JIT编译机制,您无法确定本机指令。如何使用输出计算总迭代/决策?您需要确定每行有多少JVM指令,并进行一些计算。由于JIT编译机制,您无法确定本机指令。您真正想要的似乎是一行的执行次数。您可以使用代码覆盖率工具完成此操作,而无需修改代码。这听起来有点像一个X-Y问题。您是否试图最终实现特定的或JUDon’我不想知道这个特定的因素?Peter,什么工具会告诉你一行执行了多少次?你真正想要的似乎是一行执行了多少次。你可以使用代码覆盖率工具来完成这项工作,而无需修改代码。这听起来有点像一个X-Y问题。你是想最终实现某个特定的目标,还是只是想知道这个特定的factoid?Peter,什么工具会告诉你一行执行了多少次?