Log 퍼포먼스 비교
Log 퍼포먼스 비교
서비스를 운영 하면서 로깅으로 인한 속도 저하를 직접 체감할 일이 많았다.
빠른 속도로 데이터를 발송하고 많은 양의 데이터를 수신하다 보니 오류 추적을 위해 남겨둔 로그 때문에 속도가 저하되는 경우가 생긴 것이다.
로깅 퍼포먼스를 확인하기 위해 서치와 테스트를 진행했다.
아래 글을 참고하여 테스트 해봤다.
https://dveamer.github.io/backend/HowToUseSlf4j.html
실제 퍼포먼스 비교
고정 조건 :
- 같은양의 텍스트 로그 1000줄
String.format && 앱 Log Root Level : debug
time = 21ms
time = 11ms
time = 13ms
time = 7ms
time = 10ms
time = 8ms
time = 11ms
time = 11ms
time = 25ms
String.format && 앱 Log Root Level : info
time = 18ms
time = 13ms
time = 11ms
time = 11ms
time = 23ms
time = 53ms
time = 17ms
time = 15ms
time = 10ms
time = 14ms
평균 10ms 가 넘는다.
log({}) 연산 && 앱 Log Root Level : debug
time = 6ms
time = 7ms
time = 8ms
time = 6ms
time = 7ms
time = 5ms
time = 5ms
log({}) 연산 && 앱 Log Root Level : info
time = 8ms
time = 7ms
time = 5ms
time = 8ms
time = 8ms
time = 6ms
time = 14ms
time = 6ms
time = 5ms
평균 7~8ms 속도가 나온다.
결론
String.format 과 log({}) 으로 서로 다르게 작성된 로깅은 간단한 테스트 결과 만으로도 차이가 존재했다.
This post is licensed under CC BY 4.0 by the author.