//分支/合并框架计算执行速度 long fastest=Long.MAX_VALUE; for(int i=0;i<10;i++){ long start=System.nanoTime(); forkJoinSum(numbers); long duration=(System.nanoTime()-start); if(duration<fastest){ fastest=duration; } } System.out.println("分支/合并最快执行速度为"+fastest+"ns");
//普通方法计算执行速度 long fastest1=Long.MAX_VALUE; for(int i=0;i<10;i++){ long start=System.nanoTime(); sum(numbers); long duration=(System.nanoTime()-start); if(duration<fastest1){ fastest1=duration; } } System.out.println("普通算法最快执行速度为"+fastest1+"ns"); }
//Stream API 串行方法计算执行速度 long fastest2=Long.MAX_VALUE; for(int i=0;i<10;i++){ long start=System.nanoTime(); //sum(numbers); Arrays.stream(numbers).sum(); long duration=(System.nanoTime()-start); if(duration<fastest2){ fastest2=duration; } } System.out.println("Stream API 串行 最快执行速度为"+fastest2+"ns");
//Stream API 并行方法计算执行速度 long fastest3=Long.MAX_VALUE; for(int i=0;i<10;i++){ long start=System.nanoTime(); //sum(numbers); Arrays.stream(numbers).parallel().sum(); long duration=(System.nanoTime()-start); if(duration<fastest3){ fastest3=duration; } } System.out.println("Stream API 并行 最快执行速度为"+fastest3+"ns");
输出如下结果:
1 2 3 4
分支/合并最快执行速度为25316712ns 普通算法最快执行速度为38812671ns Stream API 串行 最快执行速度为36572646ns Stream API 并行 最快执行速度为24291637ns