博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8 for ,forEach ,lambda forEach , strean forEach , parller stream forEach, Iterator性能对比
阅读量:6910 次
发布时间:2019-06-27

本文共 7199 字,大约阅读时间需要 23 分钟。

java8 for ,forEach ,Iterator,lambda forEach ,lambda  strean forEach , lambda parller stream forEach性能对比

性能结果如下:

lambda parallelStream().forEach() >  lambda stream().forEach() lambda forEach()  > classical iterator ≈ classical forEach  > classical for

测试代码如下:

1 public class ForTest { 2     public static void main(String[] args) { 3         for( int t=1;t<5;t++){ 4             for(int tt=1;tt<=4;tt++){ 5                 List
testList = Arrays.asList(new Integer[(int) Math.pow(100,(t))]); 6 long t1 = System.currentTimeMillis(); 7 for(int i=0;i
{Integer b = integer;});19 long t4 = System.currentTimeMillis();20 21 22 testList.stream().forEach(integer -> {Integer b = integer;});23 long t5 = System.currentTimeMillis();24 25 26 testList.parallelStream().forEach(integer -> {Integer b = integer;});27 long t6 = System.currentTimeMillis();28 29 Integer b;30 for(Iterator
iterator = testList.iterator(); iterator.hasNext(); b = iterator.next());31 long t7 = System.currentTimeMillis();32 33 34 System.out.println("x" + tt +": loop size:" + testList.size());35 System.out.println("y" + t + ": classical for loop waste millisecond:"+(t2-t1));36 System.out.println("y" + t + ": classical forEach loop waste millisecond:"+(t3-t2));37 System.out.println("y" + t + ": lambda forEach loop waste millisecond:"+(t4-t3));38 System.out.println("y" + t + ": lambda not parallel stream forEach loop waste millisecond:"+(t5-t4));39 System.out.println("y" + t + ": lambda parallel stream forEach loop waste millisecond:"+(t6-t5));40 System.out.println("y" + t + ": classical iterator loop waste millisecond:"+(t7-t6)+"\n");41 }42 }43 }44 }

 

 

测试结果:

x1: loop size:100y1: classical for loop waste millisecond:0y1: classical forEach loop waste millisecond:0y1: lambda forEach loop waste millisecond:74y1: lambda not parallel stream forEach loop waste millisecond:2y1: lambda parallel stream forEach loop waste millisecond:7y1: classical iterator loop waste millisecond:0x2: loop size:100y1: classical for loop waste millisecond:0y1: classical forEach loop waste millisecond:0y1: lambda forEach loop waste millisecond:1y1: lambda not parallel stream forEach loop waste millisecond:0y1: lambda parallel stream forEach loop waste millisecond:0y1: classical iterator loop waste millisecond:0x3: loop size:100y1: classical for loop waste millisecond:1y1: classical forEach loop waste millisecond:0y1: lambda forEach loop waste millisecond:0y1: lambda not parallel stream forEach loop waste millisecond:1y1: lambda parallel stream forEach loop waste millisecond:0y1: classical iterator loop waste millisecond:0x4: loop size:100y1: classical for loop waste millisecond:0y1: classical forEach loop waste millisecond:0y1: lambda forEach loop waste millisecond:0y1: lambda not parallel stream forEach loop waste millisecond:0y1: lambda parallel stream forEach loop waste millisecond:0y1: classical iterator loop waste millisecond:0x1: loop size:10000y2: classical for loop waste millisecond:1y2: classical forEach loop waste millisecond:0y2: lambda forEach loop waste millisecond:1y2: lambda not parallel stream forEach loop waste millisecond:0y2: lambda parallel stream forEach loop waste millisecond:1y2: classical iterator loop waste millisecond:1x2: loop size:10000y2: classical for loop waste millisecond:1y2: classical forEach loop waste millisecond:1y2: lambda forEach loop waste millisecond:0y2: lambda not parallel stream forEach loop waste millisecond:0y2: lambda parallel stream forEach loop waste millisecond:1y2: classical iterator loop waste millisecond:1x3: loop size:10000y2: classical for loop waste millisecond:0y2: classical forEach loop waste millisecond:1y2: lambda forEach loop waste millisecond:0y2: lambda not parallel stream forEach loop waste millisecond:0y2: lambda parallel stream forEach loop waste millisecond:1y2: classical iterator loop waste millisecond:0x4: loop size:10000y2: classical for loop waste millisecond:1y2: classical forEach loop waste millisecond:0y2: lambda forEach loop waste millisecond:0y2: lambda not parallel stream forEach loop waste millisecond:0y2: lambda parallel stream forEach loop waste millisecond:1y2: classical iterator loop waste millisecond:0x1: loop size:1000000y3: classical for loop waste millisecond:14y3: classical forEach loop waste millisecond:9y3: lambda forEach loop waste millisecond:6y3: lambda not parallel stream forEach loop waste millisecond:8y3: lambda parallel stream forEach loop waste millisecond:3y3: classical iterator loop waste millisecond:7x2: loop size:1000000y3: classical for loop waste millisecond:17y3: classical forEach loop waste millisecond:12y3: lambda forEach loop waste millisecond:7y3: lambda not parallel stream forEach loop waste millisecond:0y3: lambda parallel stream forEach loop waste millisecond:1y3: classical iterator loop waste millisecond:18x3: loop size:1000000y3: classical for loop waste millisecond:14y3: classical forEach loop waste millisecond:19y3: lambda forEach loop waste millisecond:0y3: lambda not parallel stream forEach loop waste millisecond:1y3: lambda parallel stream forEach loop waste millisecond:0y3: classical iterator loop waste millisecond:17x4: loop size:1000000y3: classical for loop waste millisecond:13y3: classical forEach loop waste millisecond:25y3: lambda forEach loop waste millisecond:1y3: lambda not parallel stream forEach loop waste millisecond:0y3: lambda parallel stream forEach loop waste millisecond:1y3: classical iterator loop waste millisecond:31x1: loop size:100000000y4: classical for loop waste millisecond:237y4: classical forEach loop waste millisecond:107y4: lambda forEach loop waste millisecond:73y4: lambda not parallel stream forEach loop waste millisecond:70y4: lambda parallel stream forEach loop waste millisecond:28y4: classical iterator loop waste millisecond:98x2: loop size:100000000y4: classical for loop waste millisecond:158y4: classical forEach loop waste millisecond:92y4: lambda forEach loop waste millisecond:59y4: lambda not parallel stream forEach loop waste millisecond:54y4: lambda parallel stream forEach loop waste millisecond:26y4: classical iterator loop waste millisecond:66x3: loop size:100000000y4: classical for loop waste millisecond:123y4: classical forEach loop waste millisecond:67y4: lambda forEach loop waste millisecond:54y4: lambda not parallel stream forEach loop waste millisecond:52y4: lambda parallel stream forEach loop waste millisecond:21y4: classical iterator loop waste millisecond:70x4: loop size:100000000y4: classical for loop waste millisecond:201y4: classical forEach loop waste millisecond:92y4: lambda forEach loop waste millisecond:54y4: lambda not parallel stream forEach loop waste millisecond:53y4: lambda parallel stream forEach loop waste millisecond:23y4: classical iterator loop waste millisecond:67

 

转载于:https://www.cnblogs.com/zhangshiwen/p/9390828.html

你可能感兴趣的文章
Python应用01 原始Python服务器
查看>>
Android应用程序与SurfaceFlinger服务的关系概述和学习计划
查看>>
WCF WinCE 中 手机端 非字符串型 datetime,int,decimal,double 等等 传递不到WCF端的解决方案...
查看>>
iis6.0 之前版本发布silverlight程序 注意事项
查看>>
SQL SERVER 2008中启用相应的功能
查看>>
Implementing a small Cron service in C# - CodeProject
查看>>
poj-2155(二维树状数组)
查看>>
Spring MVC视图解析器:Spring MVC XmlViewResolver示例
查看>>
Managing Users
查看>>
JavaScript用JQuery呼叫Server端方法
查看>>
REST::Neo4p – PERL版本的”OGM”
查看>>
ORA-19808错误一例
查看>>
DirectShowNet 使用摄像头录像+录音
查看>>
Oracle、SQL Server、MySQL数据类型对比
查看>>
php开n次方
查看>>
eclipse自动补全的设置
查看>>
Delphi的三目运算 ifthen 和iif
查看>>
libcurl多线程超时设置不安全(转)
查看>>
3种web会话管理的方式
查看>>
Atitit 常用比较复杂的图像滤镜 attilax大总结
查看>>