在学习Java流计算的过程中,发现并行流计算(parallel)的执行速度大概是非并行计算的3倍以上,测试代码及测试结果如下。

代码:

package c08_06;
import java.util.stream.LongStream;

public class ParallelStream {

    public static void main(String[] args) {
        
        Long startTime = System.nanoTime();
        LongStream s1 = LongStream.range(1,2147483647); 
        long evenNum = s1.parallel().filter(n->n%2==0).count();
        System.out.println(evenNum);
        Long endTime = System.nanoTime();
        getTimeUsed(startTime, endTime); 
        
        
        startTime = System.nanoTime();
        s1 = LongStream.range(1,2147483647); 
        evenNum = s1.filter(n->n%2==0).count();
        System.out.println(evenNum);
        endTime = System.nanoTime();
        getTimeUsed(startTime, endTime); 

    }
    
    public static void getTimeUsed(long startTime, long endTime) {
        System.out.println("Time used: " + (endTime - startTime)/1000000 + "ms");
    }

}

测试结果:

1073741823

Time used: 1390ms

1073741823

Time used: 3557ms