본문 바로가기
Etc

병렬처리가 효과적인 경우

by SuperDT 2024. 12. 22.

 

병렬처리가 효과적인 경우에 대해서 간단하게 알아보자

 

병렬 스트림은 내부적으로 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