Stream API 와 OOM

22·2024년 1월 21일

Stream API는 함수형 프로그래밍 스타일을 지원하며, 중간 연산과 최종 연산을 사용하여 데이터를 스트림으로 처리하여 대용량 데이터를 효율적으로 처리할 수 있다.

Stream API가 OOM를 해결하는 데 도움이 되는 특징은 다음과 같다.

Lazy Evaluation
중간 연산들은 실제로 데이터를 처리하지 않고, 최종 연산이 호출될 때에만 데이터를 처리하기 때문에 대용량 데이터를 한 번에 모두 메모리에 적재하지 않고 처리할 수 있다

  • however!!!!!!! 출력 시점에 엄청나게 큰 리스트의 계산을 한번에 수행해야 하기때문에 메모리 오버헤드가 부담될 수 있다.

Pipelining
Stream API는 연속적인 연산들을 파이프라이닝하여 데이터를 순차적으로 처리하기 때문에 중간 연산들에 대한 결과를 임시적으로 저장하지 않고도 메모리 사용을 최적화할 수 있다

Parallel Processing

https://medium.com/@goinhacker/lazy-evaluation%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-c6789ac2173c

0개의 댓글