简单测试Stream的执行效率
对一个String集合中数据进行转大写操作,用for循环100000次,下面是使用不同方式的执行效率
Stream 的方法引用 | Stream 的lambda函数 | foreach循环 |
---|---|---|
3011 | 2325 | 3369 |
3417 | 3573 | 3526 |
2450 | 3136 | 2293 |
3728 | 4930 | 2823 |
3416 | 2684 | 5070 |
3229 | 3174 | 2668 |
3089 | 3900 | 3120 |
2496 | 1785 | 3182 |
2964 | 3637 | 3925 |
3245 | 3120 | 3529 |
对数据最大差异值进行排除后计算平均
Stream 的map中使用方法引用 | Stream 的map中使用lambda函数 | foreach循环 |
---|---|---|
3109.375 | 2903.625 | 2846.625 |
可以看到,使用Stream串行流和for循环的执行效率相差不大,因此用Stream替换for循环是可行的,并且可以大大节省编码时间。
———————————————————————————
后来我又测试了boolean类型和int类型,发现for循环确实比Stream快得多。笔者认为,使用基本数据类型时大概for循环比Stream串行流快,但是在引用类型上for循环和Stream相差不多,甚至有时Stream比for略快。
by:Mädchen und Katzen