【ThinkingInJava】55、对set中的操作测试性能比较
2015-05-22 08:05
363 查看
/** * 书本:《Thinking In Java》 * 功能:对set中的操作测试性能比较 * 文件:SetPerformance.java * 时间:2015年5月5日08:28:23 * 作者:cutter_point */ package Lesson17Containers; import java.util.*; public class SetPerformance { //创建的是一个Test<Set<Integer>>的list容器,在Test里面使用的是Set<Integer>类型,也就是等会test函数里面第一个参数的类型 static List<Test<Set<Integer>>> tests = new ArrayList<Test<Set<Integer>>>(); static { //测试set的add tests.add ( new Test<Set<Integer>>("add") { @Override int test(Set<Integer> set, TestParam tp) { int loops = tp.loops; int size = tp.size; for(int i = 0; i < loops; ++i) { set.clear(); for(int j = 0; j < size; ++j) { set.add(j); } } return loops * size; } } ); //测试set的contains tests.add ( new Test<Set<Integer>>("contains") { @Override int test(Set<Integer> set, TestParam tp) { int loops = tp.loops; int span = tp.size * 2; for(int i = 0; i < loops; ++i) { for(int j = 0; j < span; ++j) { set.contains(j); } } return loops * span; } } ); //测试set的iterate tests.add ( new Test<Set<Integer>>("iterate") { @Override int test(Set<Integer> set, TestParam tp) { int loops = tp.loops * 10; for(int i = 0; i < loops; ++i) { Iterator<Integer> it = set.iterator(); while(it.hasNext()) it.next(); } return loops * set.size(); } } ); } public static void main(String[] args) { Tester.fieldWidth = 10; Tester.run(new TreeSet<Integer>(), tests); Tester.run(new HashSet<Integer>(), tests); Tester.run(new LinkedHashSet<Integer>(), tests); } }
输出:
------------- TreeSet -------------
size add contains iterate
10 394 76 24
100 57 26 6
1000 63 53 5
10000 80 76 5
------------- HashSet -------------
size add contains iterate
10 289 67 30
100 13 7 5
1000 18 10 4
10000 19 10 4
---------- LinkedHashSet ----------
size add contains iterate
10 227 29 21
100 25 11 7
1000 27 14 7
10000 27 14 6
相关文章推荐
- 【ThinkingInJava】54、对List操作中本质的部分进行测试还有Queue中的操作测试性能比较
- 各种 Java 的序列化库的性能比较测试结果
- java中Json工具的用法比较与性能测试
- 一、问题 MyEclipse怎么导出可运行的jar包。 二、测试环境 MyEclipse V8.6 三、操作过程 1、java项目没有导入第三方jar包的情况 这时候打包就比较简单: ①首先在MyE
- java性能测试比较模拟代码
- 关于在Java程序当中创建对象等基本操作的性能测试
- (转)Java 7的新功能和Java 1.5,1.6,1.7的性能测试比较
- Java性能测试的困惑:switch和map的性能比较
- 比较Jmeter、Grinder和JAVA多线程本身压力测试所带来的性能开销
- Java 7新功能介绍及与Java1.7性能测试比较
- 比较测试map、unodered_map、unordered_set性能效率,整型数值查找
- java同步机制性能比较小测试
- MySQL 性能比较测试:MySQL 5.6 GA -vs- MySQL 5.5
- C# 集合性能比较(代码测试)
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- Java序列化框架性能比较
- 转:Java读写文件各种方法及性能比较
- Java中的StringBuilder性能测试
- Java 5种字符串拼接方式性能比较。
- 各大主流.Net的IOC框架性能测试比较