在学习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