Kotlin
코루틴으로 Heap 사용량 최적화(?) 한 이야기 끄적
dev_roach
2022. 6. 2. 18:45
728x90
기존에 Spring 의 @Async 를 CustomThreadPool 을 이용해서 사용했었는데, 해당 부분이 엄청나게 빠른 요청이 초당 들어와서 Thread 가 부족해서 비즈니스 요건 상 discard 해도 크게 타격은 없기에 discardPolicy 를 사용하기도 했었다. 요즘 코루틴을 공부하면서 Coroutine 이 얼마나 효율적인지 배우고 있는데 이를 실무에 적용해봤더니 위와 같은 결과가 나왔다. 사실 근데 의문은 Coroutine 은 Continuous 를 Heap 에 담아두고 있는데 왜 Heap 사용량이 오히려 줄었지? 이런 생각이 들었다.
여하튼 아래를 보면 알 수 있듯이 CPU 사용량이 올랐다.
팍 튄 부분은 배포때문이고 16:00 때부터 코루틴으로 배포됬다고 생각하면 된다. CPU 사용량은 오히려 Async 일때보다 조금 올랐음을 알 수 있다. CPU 사용량이 오르면 오를 수록 CPU 를 효율적으로 잘 쓰는것이기 때문에 좋은 지표라고 판단했다. 다만 아직 배포하기 오래되지 않아 지표를 조금 더 지켜보는 것이 좋다.
느낀점
오늘 코루틴으로 바꾼 부분은 진짜 간단한 부분이였다. 사실 해당 부분을 코루틴을 더 공부해서 더 효율적으로 코드를 작성한다면 지금보다 더 효율적일 것이다. 팀원들과 같이 공유하면서 나중에는 공부해서 좀 더 효율적으로 코루틴으로 코드를 짜보자고 이야기했었다.