如何测量类文件中的字节码指令数?

时间:2011-08-20 13:52:31

标签: java eclipse bytecode

我计算了每个类文件的平均圈复杂度。 我想知道如何使用Eclipse测量每个类文件中的字节码指令数量?

2 个答案:

答案 0 :(得分:3)

我不知道你是否可以从Eclipse轻松地做到这一点,但你可以使用javap -c来反汇编你的类文件。如果您只关心每种方法的指令数,那么在脚本中包装它不应该太难。

示例:

 $ javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

public static void main(java.lang.String[]);
  Code:
   0:   getstatic   #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   3:   ldc #3; //String Hello
   5:   invokevirtual   #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   8:   return

}

答案 1 :(得分:3)

使用Mat提到的javap,使用Commons BCEL以编程方式访问字节代码。