/*
* Created on Jan 29, 2015
*
* */
Package com.zcd.test;
Import Java.sql.Timestamp;
public class Test {
private int x;
private static int staticx;
public void stackaccess (int val) {
int j = 0;
for (int i = 0; i < val; i++) {
j + = 1;
}
}
public void instanceaccess (int val) {
for (int i = 0; i < val; i++) {
x + = 1;
}
}
public void staticaccess (int val) {
int tempx=staticx;
for (int i = 0; i < val; i++) {
TEMPX + = 1;
}
}
public static void Main (string[] args) {
System.out.println (New Timestamp (System.currenttimemillis ()));
Test test=new test ();
Long T1start=system.currenttimemillis ();
Test.stackaccess (1000000000);
Long T1end=system.currenttimemillis ();
System.out.println ("time1=" + (T1end-t1start));
Long T2start=system.currenttimemillis ();
Test.instanceaccess (1000000000);
Long T2end=system.currenttimemillis ();
System.out.println ("time2=" + (T2end-t2start));
Long T3start=system.currenttimemillis ();
Test.staticaccess (1000000000);
Long T3end=system.currenttimemillis ();
System.out.println ("time3=" + (T3end-t3start));
}
}
==========================================================================
After tuning the code:
/*
* Created on Jan 29, 2015
*
* Copyright 2006 ATPCO Confidential and proprietary. All rights Reserved.
*/
Package com.zcd.test;
Import Java.sql.Timestamp;
public class Test {
private int x;
private static int staticx;
public void stackaccess (int val) {
int j = 0;
for (int i = 0; i < val; i++) {
j + = 1;
}
}
public void instanceaccess (int val) {
int tempx=x;
for (int i = 0; i < val; i++) {
TEMPX + = 1;
}
}
public void staticaccess (int val) {
int tempx=staticx;
for (int i = 0; i < val; i++) {
TEMPX + = 1;
}
}
public static void Main (string[] args) {
System.out.println (New Timestamp (System.currenttimemillis ()));
Test test=new test ();
Long T1start=system.currenttimemillis ();
Test.stackaccess (1000000000);
Long T1end=system.currenttimemillis ();
System.out.println ("time1=" + (T1end-t1start));
Long T2start=system.currenttimemillis ();
Test.instanceaccess (1000000000);
Long T2end=system.currenttimemillis ();
System.out.println ("time2=" + (T2end-t2start));
Long T3start=system.currenttimemillis ();
Test.staticaccess (1000000000);
Long T3end=system.currenttimemillis ();
System.out.println ("time3=" + (T3end-t3start));
}
}
Java Performance tuning (using local variables)