안드로이드 개발자 노트
[이펙티브 코틀린] Item51. 성능이 중요한 부분에는 기본 자료형 배열을 사용하라 본문
반응형
코틀린은 기본 자료형(primitive)을 선언할 수 없지만, 최적화를 위해 내부적으로 사용할 수 있습니다.
기본 자료형은 다음과 같은 특징이 있습니다.
- 가볍다. 일반적인 객체와 다르게 추가적으로 포함되는 것들이 없기 때문이다.
- 빠르다. 값에 접근할 때 추가 비용이 들어가지 않는다.
제네릭 타입에는 기본 자료형을 사용할 수 없으므로 랩핑된 타입을 사용해야 하지만, IntArray와 LongArray 등의 기본 자료형을 활용하는 배열을 사용하는 방법이 있습니다.
IntArray는 400,000,016바이트, List<Int>는 2,000,006,944바이트를 할당하므로 영역만 봤을때, 5배 차이가 발생합니다.
1,000,000개의 숫자를 갖는 컬렉션을 사용해서 평균을 구하는 처리를 해 보면, 배열을 사용하는 경우가 25% 정도 더 빨라 성능면에서도 차이가 발생합니다.
일반적으로 Array 보다 List, Set 사용하는것이 좋습니다.
하지만 기본 자료형의 컬렉션을 굉장히 많이 보유해야 하는 경우에는 성능과 메모리 사용량을 줄일 수 있는 Array 활용이 좋습니다.
반응형
'Kotlin > 이펙티브 코틀린' 카테고리의 다른 글
[이펙티브 코틀린] Item52. mutable 컬렉션 사용을 고려하라 (0) | 2024.02.03 |
---|---|
[이펙티브 코틀린] Item50. 컬렉션 처리 단계 수를 제한하라. (0) | 2024.02.03 |
[이펙티브 코틀린] Item49. 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라 (1) | 2024.02.03 |