欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年01月09日 08:56:13   投稿:laozhang  
本篇文章給大家用代碼實(shí)例做了segmentfaultjava8中parallelStream性能測(cè)試,并對(duì)測(cè)試結(jié)果做了說明,需要的朋友學(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)文章

  • java設(shè)計(jì)模式之單例模式

    java設(shè)計(jì)模式之單例模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • SpringCloud組件之Eureka Server詳細(xì)啟動(dòng)過程及說明

    SpringCloud組件之Eureka Server詳細(xì)啟動(dòng)過程及說明

    這篇文章主要介紹了SpringCloud組件之Eureka Server詳細(xì)啟動(dòng)過程及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • IDEA創(chuàng)建SpringBoot項(xiàng)目整合mybatis時(shí)mysql-connector-java報(bào)錯(cuò)異常的詳細(xì)分析

    IDEA創(chuàng)建SpringBoot項(xiàng)目整合mybatis時(shí)mysql-connector-java報(bào)錯(cuò)異常的詳細(xì)分析

    最近工作中發(fā)現(xiàn)了個(gè)錯(cuò)誤,分享給同樣遇到這個(gè)問題的朋友,這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建SpringBoot項(xiàng)目整合mybatis時(shí)mysql-connector-j報(bào)錯(cuò)異常的詳細(xì)分析,需要的朋友可以參考下
    2023-02-02
  • Java多線程之徹底搞懂線程池

    Java多線程之徹底搞懂線程池

    熟悉 Java 多線程編程的同學(xué)都知道,當(dāng)我們線程創(chuàng)建過多時(shí),容易引發(fā)內(nèi)存溢出,因此我們就有必要使用線程池的技術(shù)了。想要詳細(xì)了解的同學(xué)可以參考閱讀本文
    2023-03-03
  • Java中checkbox實(shí)現(xiàn)跨頁多選的方法

    Java中checkbox實(shí)現(xiàn)跨頁多選的方法

    最近做了一個(gè)項(xiàng)目其中遇到這樣的需求,要實(shí)現(xiàn)checkbox跨頁多選功能,經(jīng)過小編整理,順利解決,今天小編給大家分享Java中checkbox實(shí)現(xiàn)跨頁多選的方法,需要的的朋友參考下
    2017-01-01
  • spring-mvc/springboot使用MockMvc對(duì)controller進(jìn)行測(cè)試

    spring-mvc/springboot使用MockMvc對(duì)controller進(jìn)行測(cè)試

    這篇文章主要介紹了spring-mvc/springboot使用MockMvc對(duì)controller進(jìn)行測(cè)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程

    MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • java模擬實(shí)現(xiàn)微信紅包算法

    java模擬實(shí)現(xiàn)微信紅包算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)模擬微信紅包算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • SpringBoot集成MinIO的示例代碼

    SpringBoot集成MinIO的示例代碼

    對(duì)象存儲(chǔ)服務(wù)OSS是一種海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),適合存放任意類型的文件,這篇文章主要介紹了SpringBoot集成MinIO的示例代碼,需要的朋友可以參考下
    2023-06-06
  • idea中的update?project按鈕使用

    idea中的update?project按鈕使用

    這篇文章主要介紹了idea中的update?project按鈕使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論