2017년 4월 25일 화요일

중복제거 stream api, forkjoin, for문

소스:

https://github.com/julyinsung/thisandthat/tree/master/src/main/java/parallel/example

참고:

http://starplatina.tistory.com/entry/%EC%9E%90%EB%B0%94-%EC%8A%A4%ED%8A%B8%EB%A6%BC-API
http://starplatina.tistory.com/entry/Java-8-Stream-API-PART-2

환경:

gradle, java1.8

개요:

List의 단어 중복제거를 위해 stream, forkjoin, for문을 이용하여 구현.
List 사이즈는 2,000,000개이고 성능 평가(너무 궁금해서..).

설명:

  • 소스링크를 따라가면 3개의 클래스가 존재한다.
ForkJoinSample.java: ForkJoin이용. ForkJoin 게시글 참조
NormalSample.java: For문 이용
StreamSample.java: Stream API이용

  • 테스트는 test폴더의 각 테스트 코드 실행. \test\java\parallel\example
For문과 ForkJoin은 For문이 약간 우세, Stream API는 젤 느림. 
1.079s(For문) 
1.087s(ForkJoin) 
1.154s(Stream API)

  • 가독성 면으로 볼때는 Stream API가 우세.
List result = 
    list.parallelStream()
     .distinct()
     .collect(Collectors.toList());











댓글 없음:

댓글 쓰기