Promise Pool 활용

boms·2024년 7월 18일
0

Promise.all vs Promise Pool

  • Promise.all은 각 작업 단위에서 가장 긴 작업 시간이 chunk 작업 시간이 된다
    • 데이터베이스의 커넥션풀 제한 등을 고려하여 적당량의 chunk로 분할해서 수행해야 한다.
  • Promise.all이 여러개면 중간에 낭비가 발생된다

  • Promise Pool은 동시에 여러 작업을 처리할 수 있어 더 효율적이다
    • 메인 스레드를 최대한 활용
    • 지정한 개수 만큼의 레일을 깔아두고 이 자리를 Promise 들이 계속 채워가는 형태
    • 가장 긴 Promise가 끝나기 전까지 다음 Promise들이 작업을 하지 않는 비효율을 개선할 수 있다
  • 하지만 Promise Pool 의 pool 개수가 많아질수록 Promise.all 와 성능은 비슷해진다.
  • Promise마다 작업시간이 유사한 상황에서는 결과 차이 없음
profile
2023.08.21~

0개의 댓글