Open
Description
🤔 왜 이슈를 생성했나요?
주석(어노테이션을 제외한 // /**/)은 로직에 영향을 주지 않습니다. 그렇다면 성능에도 영향을 주지 않을까요? 런타임과 빌드타임 관점에서 궁금증이 들어서 확인해봤습니다. 과연 성능에 차이가 생겼을까요? 차이가 났다면 얼마나 생겼을까요!
😁 공유하고 싶은 내용 : 주석은 성능에 영향을 미치지않는다고 했는데, 정말일까?
들어가며
대충 감은 잡히시겠지만! 한번 생각해보시면 좋을 것 같습니다.
그리고 생각하신 결과와 같은지 비교해보시면 재밌을 것 같아요 😄
_
결과
프로그래밍에서 주석은 코드를 이해하고 유지보수할 때 매우 유용합니다. 그러나 이러한 주석이 프로그램의 성능에 영향을 미치지 않는다는 것이 일반적인 생각입니다.
그렇다면 주석이 코드의 성능에 영향을 미치지 않을까요? 이 질문에 대한 답은 "그렇지 않다" 입니다. 주석은 프로그램의 런타임 성능에는 영향을 미치지 않습니다. 그러나 빌드 타임에는 영향을 미칠 수 있습니다.
아래 테스트를 참고해주세요 :)
테스트
단순한 주석으로 50만 라인(80mb)을 채우고, 빌드 타임 및 런타임 성능을 비교했습니다.
테스트 결과
런타임 확인 결과
- 주석이 런타임 성능에 영향을 미치지 않습니다.
- 주석 크기가 작든 크든 같은 유사한 실행시간을 보입니다.
- 즉, 빌드된 파일에는 주석이 존재하지 않기 때문에 실행시간 차가 없는 것으로 보입니다.
빌드 타임 확인 결과
- 주석은 빌드 타임에 영향을 미칩니다.
- 로직에 복잡도 등에 따른 문제가 아니라, 단순히 파일 내용을 읽는 시간이 증가한 것 같습니다.
- 그러나, 순수 주석 80MB 정도마다 빌드 타임이 1초 증가하는 것으로 확인되었습니다.
- 즉, 사실상 주석의 양을 신경쓰면서 코드를 구성해야되는 수준이 아닙니다. ☺
📌 참고자료, 공유하고 싶은 자료
_
-
인텔리제이에서 크기가 큰 파일을 허용하지 않습니다. 기본적으로 파일 크기를 2.5메가로 제한하고 있습니다. 먼저 큰 파일을 IDE에서 접근할 수 있도록 설정을 수정합니다.
-
또한 빌드 시 Out Of Memory 에러가 발생하면, 인텔리제이에서 메모리 사이즈를 늘려야 합니다.