long num = 10000000000l;
long l = System.currentTimeMillis();
for (long j = 0 ; j < num; j++)
{
}共多少机器指令,我的机子运行约10s; num 百亿

解决方案 »

  1.   

    嫌javap麻烦的话,装一个bytecode插件就好咯。
      

  2.   

    源代码:
    package action;
    public class Test {
    public static void main(String[] args) {
    long num = 10000000000l;
    long l = System.currentTimeMillis();
    for (long j = 0; j < num; j++) {
    System.out.println();
    }
    }
    }==========================================================================虚拟机指令:// class version 49.0 (49)
    // access flags 33
    public class action/Test {  // compiled from: Test.java  // access flags 1
      public <init>()V
       L0 (0)
        LINENUMBER 2 L0
        ALOAD 0
        INVOKESPECIAL java/lang/Object.<init>()V
        RETURN
       L1 (4)
        LOCALVARIABLE this Laction/Test; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1  // access flags 9
      public static main([Ljava/lang/String;)V
       L0 (0)
        LINENUMBER 4 L0
        LDC 10000000000
        LSTORE 1
       L1 (3)
        LINENUMBER 5 L1
        INVOKESTATIC java/lang/System.currentTimeMillis()J
        LSTORE 3
       L2 (6)
        LINENUMBER 6 L2
        LCONST_0
        LSTORE 5
       L3 (9)
        GOTO L4
       L5 (11)
        LINENUMBER 7 L5
        GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
        INVOKEVIRTUAL java/io/PrintStream.println()V
       L6 (14)
        LINENUMBER 6 L6
        LLOAD 5
        LCONST_1
        LADD
        LSTORE 5
       L4 (19)
        LLOAD 5
        LLOAD 1
        LCMP
        IFLT L5
       L7 (24)
        LINENUMBER 9 L7
        RETURN
       L8 (26)
        LOCALVARIABLE args [Ljava/lang/String; L0 L8 0
        LOCALVARIABLE num J L1 L8 1
        LOCALVARIABLE l J L2 L8 3
        LOCALVARIABLE j J L3 L7 5
        MAXSTACK = 4
        MAXLOCALS = 7
    }
    ====================================================================
    嫌javap麻烦的话,装一个bytecode插件就好咯。
      

  3.   

    System.out.println(); 会死人的