JAVA方法调用效率差别
2010-03-05 10:14
218 查看
最近需要做一些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));
}
}
在同一个类中建立普通的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));
}
}
相关文章推荐
- C#调用IronPython和C方法效率差别
- C#调用IronPython和C方法效率差别
- C++和Java的属性访问和方法调用 效率比较
- java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
- android JNI基本库(jsting转string和C多线程调用java方法的说明)
- 调用java的私有方法
- JAVA类的方法调用和变量
- Java方法的调用过程
- JNI:Java调用C/C++-传递空值(null)的处理方法
- java中获取调用类及调用方法
- velocity 模板调后台 bean java方法奇怪的调用
- java远程方法调用(java RMI)
- Java 反射调用动态方法
- java main方法调用类的实例化方法疑问
- java中使用rmi进行远程方法调用
- JNI: JAVA通过JNI调用另一个JAVA类的方法
- 使用directjngine、Ext Direct调用服务器端Java方法
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法
- java 同步调用第三方sdk提供异步监听方法
- 从frameworks的Java层调用JNI的方法