最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java8中parallelStream性能測(cè)試及結(jié)果分析

 更新時(shí)間:2018年01月09日 08:56:13   投稿:laozhang  
本篇文章給大家用代碼實(shí)例做了segmentfaultjava8中parallelStream性能測(cè)試,并對(duì)測(cè)試結(jié)果做了說(shuō)明,需要的朋友學(xué)習(xí)下吧。

測(cè)試1

@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@Warmup(iterations = 5, time = 3, timeUnit = TimeUnit.SECONDS)
@Measurement(iterations = 20, time = 3, timeUnit = TimeUnit.SECONDS)
@Fork(1)
@State(Scope.Benchmark)
public class StreamBenchTest {
  List<String> data = new ArrayList<>();
  @Setup
  public void init() {
    // prepare
    for(int i=0;i<100;i++){
      data.add(UUID.randomUUID().toString());
    }
  }
  @TearDown
  public void destory() {
    // destory
  }
  @Benchmark
  public void benchStream(){
    data.stream().forEach(e -> {
      e.getBytes();
      try {
        Thread.sleep(10);
      } catch (InterruptedException e1) {
        e1.printStackTrace();
      }
    });
  }
  @Benchmark
  public void benchParallelStream(){
    data.parallelStream().forEach(e -> {
      e.getBytes();
      try {
        Thread.sleep(10);
      } catch (InterruptedException e1) {
        e1.printStackTrace();
      }
    });
  }
  public static void main(String[] args) throws RunnerException {
    Options opt = new OptionsBuilder()
        .include(".*" +StreamBenchTest.class.getSimpleName()+ ".*")
        .forks(1)
        .build();
    new Runner(opt).run();
  }
}

parallelStream線程數(shù)

默認(rèn)是Runtime.getRuntime().availableProcessors() - 1,這里為7

運(yùn)行結(jié)果

# Run complete. Total time: 00:02:44
Benchmark              Mode Cnt      Score     Error Units
StreamBenchTest.benchParallelStream avgt  20  155868805.437 ± 1509175.840 ns/op
StreamBenchTest.benchStream     avgt  20 1147570372.950 ± 6138494.414 ns/op

測(cè)試2

將數(shù)據(jù)data改為30,同時(shí)sleep改為100

Benchmark              Mode Cnt      Score     Error Units
StreamBenchTest.benchParallelStream avgt  20  414230854.631 ± 725294.455 ns/op
StreamBenchTest.benchStream     avgt  20 3107250608.500 ± 4805037.628 ns/op

可以發(fā)現(xiàn)sleep越長(zhǎng),parallelStream優(yōu)勢(shì)越明顯。

小結(jié)

parallelStream在阻塞場(chǎng)景下優(yōu)勢(shì)更明顯,其線程池個(gè)數(shù)默認(rèn)為
Runtime.getRuntime().availableProcessors() - 1,如果需修改則需設(shè)置-Djava.util.concurrent.ForkJoinPool.common.parallelism=8

以上就是本次講述知識(shí)點(diǎn)的全部?jī)?nèi)容,感謝你對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

项城市| 南涧| 临泉县| 大名县| 千阳县| 奉新县| 明光市| 金溪县| 忻城县| 彩票| 瑞昌市| 苍南县| 平南县| 正镶白旗| 阜南县| 酉阳| 吉林省| 福贡县| 孟连| 涿鹿县| 湛江市| 互助| 偏关县| 游戏| 莫力| 衢州市| 海伦市| 天镇县| 当雄县| 阳朔县| 南京市| 图片| 怀宁县| 中西区| 察隅县| 溧水县| 疏勒县| 安福县| 甘德县| 普陀区| 龙泉市|