JDK 1.5中泛型(Generics type)的性能测试再测试
2004-10-31 14:36
597 查看
我看了http://dev.csdn.net/develop/article/41/41137.shtm后,再自己添加了一些代码,然后重新测试。结果我发现根本说不上速度变慢了,而只是在一个很小的范围内波动。
import java.util.ArrayList; import java.util.List;
/** * @author yoti * 在JDK 1.5下 */
public class PerformanceTest {
/** Creates a new instance of PerformanceTest */
public PerformanceTest() {}
public static void main(String[] args) { long[] beforeAdd = new long[2]; long[] afterAdd = new long[2]; long[] beforeGet = new long[2]; long[] afterGet = new long[2]; double[] sumAdd = new double[2]; double[] sumGet = new double[2]; int oneOrTwo = 0;
System.out.println( "java.version=" + System.getProperty("java.version")); for (int k = 0; k < 100; k++) { if ((k % 2) == 0) { List list = new ArrayList(); beforeAdd[0] = System.currentTimeMillis(); int end = 100000; for (int i = 0; i < end; i++) { list.add(new Integer(i)); }
afterAdd[0] = System.currentTimeMillis(); beforeGet[0] = System.currentTimeMillis(); for (int j = 0; j < end; j++) { Integer integer = (Integer) list.get(j); }
afterGet[0] = System.currentTimeMillis(); } else { List<Integer> list = new ArrayList<Integer>(); beforeAdd[1] = System.currentTimeMillis(); int end = 100000; for (int i = 0; i < end; i++) { list.add(new Integer(i)); }
afterAdd[1] = System.currentTimeMillis(); beforeGet[1] = System.currentTimeMillis(); for (int j = 0; j < end; j++) { Integer integer = (Integer) list.get(j); }
afterGet[1] = System.currentTimeMillis(); } oneOrTwo = k % 2; double addTime = (afterAdd[oneOrTwo] - beforeAdd[oneOrTwo]) / 1000.0d; double getTime = (afterGet[oneOrTwo] - beforeGet[oneOrTwo]) / 1000.0d; sumAdd[oneOrTwo] += addTime; sumGet[oneOrTwo] += getTime; } System.out.println("不使用generics时Add总耗时:" + sumAdd[0]); System.out.println("使用generics后Add总耗时:" + sumAdd[1]); System.out.println("不使用generics时Get总耗时:" + sumGet[0]); System.out.println("使用generics后Get总耗时:" + sumGet[1]); } } java.version=1.5.0 不使用generics时Add总耗时:12.318 使用generics后Add总耗时:12.658 不使用generics时Get总耗时:0.40100000000000025 使用generics后Get总耗时:0.4200000000000002 //另一次测试 java.version=1.5.0 不使用generics时Add总耗时:13.358999999999993 使用generics后Add总耗时:13.127999999999998 不使用generics时Get总耗时:0.5120000000000002 使用generics后Get总耗时:0.3900000000000001
相关文章推荐
- scala 泛型基础之jdk1.5引入的泛型 generics (一)
- Convert.ChangeType转换泛型的性能损失测试
- JDK 1.5之Generics
- jdk 1.5新特性--泛型
- IBMJDK 1.5中SimpleDateFormat存在性能缺陷,使用FastDateFormat替换之。
- 黑马程序员:泛型介绍:JDK1.5新特性
- 我的JDK是1.5得啊,我的maven2也是2.0.9的最新版本的,这个是底层接口的泛型,又不能删除,请教用过的高手怎样解决啊?
- JDK 1.5引入的新特性 -- 泛型
- jdk1.5新特性之泛型(二)
- 黑马程序员:jdk1.5新特性4(注解泛型)
- Jdk内置性能测试工具的介绍
- .NET2.0 Base Class Library 系列(四)泛型 Generics Type
- 黑马程序员——Java基础---泛型、集合框架工具类:Collections和Arrays、JDK 1.5新特性
- JDK 8新特性LongAdder和AtomicLong的性能测试对比
- JDK 1.5 新功能使用实例之Generics (转)
- JDK 1.5引入的新特性 -- 泛型
- Java 性能测试 - 使用jdk自带的jvisualvm
- jdk 1.5新特性——泛型
- JDK1.5 增强for 循环 强调泛型
- The Java™ Tutorials — Generics :Generic Methods and Bounded Type Parameters 泛型方法和受限类型参数