본문 바로가기
Dev/Java

『Java』 int 타입과 Integer 타입은 성능 차이가 있는가?

by 세대교체 2024. 11. 4.

래퍼 클래스 성능

래퍼 클래스는 객체이기 때문에 기본형보다 다양한 기능을 제공한다.

그렇다면 왜 기본형도 함께 제공할까?

 

기본형과 래퍼 클래스의 성능 차이를 살펴보자.

 

기본형 연산은 래퍼 클래스보다 약 5배 정도 빠르다.

참고로, 실제 성능 차이는 시스템 환경에 따라 다를 수 있다.

 

기본형은 메모리에서 단순히 그 크기만큼의 공간을 차지한다.

예를 들어, int는 일반적으로 4바이트의 메모리를 사용한다.

반면, 래퍼 클래스인 Integer의 인스턴스는 내부에 필드로 기본형 값을 포함할 뿐만 아니라 자바 객체로서의 메타데이터도 포함하므로 더 많은 메모리를 사용한다.

 

자바 버전과 시스템에 따라 다르지만, 대략 8~16바이트 정도의 메모리가 추가로 사용된다.

 

 

기본형, 래퍼 클래스 어떤 것을 사용해야 할까?

일반적인 애플리케이션 개발에서는 이러한 최적화가 큰 영향을 미치지 않는다.

 

CPU 연산을 수만에서 수십만 번 이상 연속적으로 연산을 해야 하는 경우라면 기본형을 사용하는 것이 좋다. 그러나 그렇지 않은 경우라면 코드의 유지보수성을 고려하여 더 적합한 것을 선택하는 것이 좋다.

 

예를 들어, 웹 애플리케이션에서는 메모리 내에서 발생하는 연산보다 네트워크 호출이 훨씬 더 많은 시간을 소요한다.

 

자바 메모리 내의 연산을 수천 번 줄이는 것보다 네트워크 호출 한 번을 줄이는 것이 더 큰 성능 향상을 가져올 수 있다.