Java 8并行流、线程池与顺序处理的性能对比评估
Java 8 顺序、并行流与线程池处理的性能对比评估
最近我在评估Java 8里三种数据处理方案的性能差异:顺序处理、并行流处理以及线程池处理。先给大家展示下在主线程中执行的顺序处理代码片段:
public long doSequence() { DoubleStream ds = IntStream.range(0, 100000).asDoubleStream(); long startTime = System.currentTimeMillis(); final AtomicLong al = new AtomicLong(); ds.forEach((num) -> { long n1 = new Double(Math.pow(num, 3)).longValue(); long n2 = new Double(Math.pow(num, 2)).longValue(); al.addAndGet(n1 + n2); }); System.out.println("Sequence"); // 注:原代码片段此处有截断,后续输出逻辑未完整展示 }
这段代码的核心逻辑是:生成0到99999的整数流并转为DoubleStream,遍历每个元素计算其三次方和二次方的long值,最后将结果累加到AtomicLong中,同时记录了处理的起始时间用于性能统计。
内容的提问来源于stack exchange,提问作者Cyril Cherian
相关产品推荐
相关产品推荐

