最近需要做一些JAVA底层操作,为了尽可能提高效率做了如下测试。
在同一个类中建立普通的PUBLIC方法和PUBLIC STATIC 方法两种,并使用JUnit进行多次循环。最终证明使用对象的方式调用效率高。
上结果。
起始时间Fri Mar 05 10:15:37 CST 2010结束时间Fri Mar 05 10:15:38 CST 2010时间间隔891
起始时间Fri Mar 05 10:15:38 CST 2010结束时间Fri Mar 05 10:15:39 CST 2010时间间隔1047
起始时间Fri Mar 05 10:15:45 CST 2010结束时间Fri Mar 05 10:15:46 CST 2010时间间隔875
起始时间Fri Mar 05 10:15:46 CST 2010结束时间Fri Mar 05 10:15:47 CST 2010时间间隔1046
起始时间Fri Mar 05 10:15:55 CST 2010结束时间Fri Mar 05 10:15:56 CST 2010时间间隔891
起始时间Fri Mar 05 10:15:56 CST 2010结束时间Fri Mar 05 10:15:57 CST 2010时间间隔1047
上代码
package efficiency;
public class Efficiency {
public void eff() {
int a = 0;
for (int i = 0; i < 10000; i++) {
a += i;
}
}
public static void eff1() {
int a = 0;
for (int i = 0; i < 10000; i++) {
a += i;
}
}
}
package efficiency;
import org.junit.Test;
public class EfficiencyTest {
@Test
public void testEff() {
long st = new java.util.Date().getTime();
for (int i = 0; i < 100000; i++) {
new Efficiency().eff();
}
long en = new java.util.Date().getTime();
System.out.println("起始时间" + new java.util.Date(st) + "结束时间"
+ new java.util.Date(en) + "时间间隔" + (en - st));
}
@Test
public void testEff1() {
long st = new java.util.Date().getTime();
for (int i = 0; i < 100000; i++) {
Efficiency.eff1();
}
long en = new java.util.Date().getTime();
System.out.println("起始时间" + new java.util.Date(st) + "结束时间"
+ new java.util.Date(en) + "时间间隔" + (en - st));
}
}