[Thread] 3. 일반 스레드 vs 스레드풀 (I/O, CPU 성능 비교)
·
유용한 개발지식/스레드(Thread)
스레드 vs 스레드풀 (성능 비교)📌 서론이전 1,2탄 포스팅에서 '일반 스레드'와 '스레드풀'을 사용했을 때 I/O, CPU 작업을 진행하면 어떤 성능을 보여줄지 테스트를 진행했다. 테스트를 통해 I/O 작업이 조금 더 스레드풀 설정에 민감하게(성능향상폭) 반응한다는 것을 알게 되었고 CPU작업은 스레드풀 설정에는 민감하지 않지만 제대로 설정하지 않으면 낭비되는 스레드가 많을 것이라는 생각을 하게 되었다.그래서 이번에는 조금 더 상세하게 각 스레드별로 테스트를 진행하고 분석을 해봤다. 이번 내용을 통해 우리가 일반적으로 사용하는 스레드의 성능과 최적화는 어떻게 하는게 좋을지 알아보자.테스트에 사용되는 코드는 하단의 1,2편에 모두 작성되어 있습니다. (전체 소스코드 깃허브도 이전 포스팅에 포함) [T..
[Thread] 1. 일반 스레드의 I/O, CPU 성능 비교
·
유용한 개발지식/스레드(Thread)
Kotlin(Java)을 사용하여 일반 스레드의 성능을 비교해 보자📌 서론최근 나는 동시성 제어에 관심이 생겨 관련된 개념을 많이 찾아보고 생각하고 있다. 그래서 java의 동시성 제어 List, Map 등을 내부 구현까지 뜯어서 확인해보기도 하고 성능 테스트도 진행했다.이렇게 열심히 테스트를 하다 보면 동시성 제어가 이런 것이구나! 깨달음을 얻게 된다. 근데 나는 궁금한 게 많은 개발자다 보니 테스트를 하며 새로운 것들에 눈을 뜨게 되었다. 특히 locust결과를 보면 알 수 있는 RPS(Requests Per Second)에 대해서 많이 궁금한 점이 생겼다. RPS는 동시성 제어(synchronized, concurrentHashMap)에 따라 lock이 걸리며 결과가 다르게 나타나기도 하지만 스레..