stackvars.java

来自「Practical Java也是一本和J2ME手机游戏开发相关的书」· Java 代码 · 共 52 行

JAVA
52
字号
class StackVars
{
  private int instVar;
  private static int staticVar;

  //stack variable access
  void stackAccess(int val)
  {
    int j=0;
    for (int i=0; i<val; i++)
      j += 1;
  }

  //class instance variable access
  void instanceAccess(int val)
  {
    for (int i=0; i<val; i++)
      instVar += 1;
  }

  //class static variable access
  void staticAccess(int val)
  {
    for (int i=0; i<val; i++)
      staticVar += 1;
  }

  public static void main(String args[])
  {
    StackVars t = new StackVars();
    long start = System.currentTimeMillis();
    for (int i=0; i<100; i++)
      t.stackAccess(1000000);
    long end = System.currentTimeMillis();
    System.out.println("loop with stack vars " + (end-start));
    long num=end-start;
    start = System.currentTimeMillis();
    for (int i=0; i<100; i++)
      t.instanceAccess(1000000);
    end = System.currentTimeMillis();
    System.out.println("loop with instance vars " + (end-start));
    num=(end-start)/num;
    start = System.currentTimeMillis();
    for (int i=0; i<100; i++)
      t.staticAccess(1000000);
    end = System.currentTimeMillis();
    System.out.println("loop with static vars " + (end-start));
    System.out.println("stack is " + num + " times faster than " +
                       "instance");
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?