병렬처리가 효과적인 경우에 대해서 간단하게 알아보자
병렬 스트림은 내부적으로 ForkJoinPool을 사용하여 여러 스레드에서 작업을 분할하여 처리
멀티코어 CPU 환경에서는 병렬 스트림이 처리 시간을 줄이는데 큰 효과를 발휘한다
다만, 데이터가 적을 경우 오버헤드(병렬 처리 초기화 시간, 스레드 간 데이터 통신 비용) 발생
CPU 연산이 아닌 네트워크 호출이나 파일 입출력 같은 IO 작업에서는 성능 개선이 미미해진다
대용량 데이터셋 처리
수천, 수만 개 이상의 데이터를 처리할 때 병렬 스트림을 사용하면 단일 스레드보다 처리속도 향상
예)수백만 건의 제품을 카테고리별로 검색하거나 필터링하는 경우 병렬 처리가 유리
CPU 집약적인 작업
각 데이터 항목에 대해 복잡한 연산이나 시간이 많이 소요되는 작업 (이미지 랜더링, 암호화, 머신러닝, 예측 등)
예)제품의 평점 데이터를 수집하여 평균 평점을 계산하는 과정에서 수천 개의 데이터 동시 계산
독립적인 연산
각 데이터 항목에 대한 처리가 독립적이고, 이전 연산 결과에 의존하지 않는 경우 병렬처리에 적합
예)리뷰나 게시글의 데이터를 일괄적으로 가져와 map이나 filter로 변환하는 작업
'Etc' 카테고리의 다른 글
DB 인덱싱 전략 (0) | 2025.01.05 |
---|---|
멀티 모듈을 사용하는 이유 (0) | 2024.12.29 |
이클립스 localhost is already in use 에러 해결방법 (0) | 2024.12.15 |
[Linux] man 명령어 (0) | 2024.12.15 |
Mac 이클립스 자동완성 설정하기 (1) | 2024.12.08 |