kyucumber
전체 글 보기

이펙티브 코틀린 아이템 51. 성능이 중요한 부분에는 기본 자료형 배열을 사용하라

코틀린은 기본 자료형(primitive)을 선언할 수 없지만 최적화를 위해 내부적으로 사용할 수 있다.

기본 자료형은 아래와 같은 특징이 있다.

  • 가볍다. 일반적인 객체와 다르게 추가적으로 포함되는 것들이 없기 때문이다.
  • 빠르다. 값에 접근할 때 추가 비용이 없다.

대규모의 데이터를 처리할 때 기본 자료형을 사용하면 상당히 큰 최적화가 이루어진다.

코틀린의 List나 Set 등의 컬렉션은 제네릭 타입이며 제네릭 타입에는 기본 자료형을 사용할 수 없으므로 래핑된 타입을 사용해야 한다. 일반적인 경우라면 이렇게 하는게 처리가 쉬워지므로 적합하다.

하지만 성능이 중요한 코드라면 IntArray, LongArray 등의 기본 자료형을 활용하는 배열을 사용하는게 좋다.

Untitled

  • List<Int> vs IntArrray (1,000,000개의 정수)

    • List<Int>

      • 20,000,006,944 바이트
    • IntArray

      • 400,000,016 바이트

대략 5배 정도의 차이가 발생하므로 메모리 소비가 중요하다면 기본 자료형 배열을 사용하는 것이 좋다.

일반적인 경우에는 List를 사용하는게 좋다. List가 훨씬 더 기능이 다양하며, 더 많은 곳에 쉽게 사용될 수 있다.

정리

일반적으로 Array보다 List와 Set을 사용하는 것이 좋다.

기본 자료형의 컬렉션을 굉장히 많이 보유해야 하는 경우 성능을 높이고 메모리 사용량을 줄일 수 있도록 Array를 사용하는게 좋다.

Reference

  • 이펙티브 코틀린 - 프로그래밍 인사이트, 마르친 모스칼라 지음, 윤인성 옮김

개인적인 기록을 위해 작성된 글이라 잘못된 내용이 있을 수 있습니다.

오류가 있다면 댓글을 남겨주세요.

Table of contents