Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- lufs
- 오픈소스라이선스
- java callstack
- convert Intent to string
- RxJava Programming
- APK 동적로딩
- Dagger2란
- Service 팁
- corePoolSize
- gitignore
- android network
- Service관리
- 음량표준화
- Replaygain
- BlockingQueue Capacity
- ArrayMap
- callstack 출력
- MediaDataSource
- convert string to intent
- android enum
- Intent String 변환
- enum performance
- print callstack
- RxJava 스터디
- mitmproxy
- so파일 동적로딩
- APK로딩
- gitignore작성법
- HashMap vs ArrayMap
- 네트워크 디버깅
Archives
- Today
- Total
일상&개발 로그
[PerformancePattern] Enum 본문
# Enum
단점 1. dex크기가 커진다.
- 동일한 기능 int를 썼을때 vs enum을 썼을 때 dex크기 차이 비교
|
기존 |
int 추가 |
enum 추가 |
dex사이즈 |
2556bytes |
2680bytes |
4188bytes |
int: 124bytes 추가
enum: 1632bytes 추가
약 13배 가까이 차이남
dex크기가 앱 성능에 직접적인 영향을 미치지는 않는다. 그러나 앱 실행을 위해서는 Heap 메모리에 dex파일을 로딩해야 하는데 Heap메모리가 부족하게되면 System Memory에 압박이 가해지고, 메모리 공간을 확보하기위해 앱이 종료될 수도 있다.
단점 2. Runtime 오버헤드가 추가된다.
뿐만 아니라, enum이 선언될 때마다 16 + 20bytes 정도 Runtime 메모리 오버헤드가 추가됨.
요약: enum 사용을 지양해라.
동영상 링크: https://www.youtube.com/watch?v=Hzs6OBcvNQE&index=21&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu
'개발 > 안드로이드 개발' 카테고리의 다른 글
미디어 음량 표준화 - ReplayGain 적용하기 (0) | 2017.09.13 |
---|---|
MediaDataSource를 이용한 프로그레시브 재생 구현 (2) | 2017.08.03 |
[PerformancePattern] ArrayMap vs HashMap (0) | 2017.05.22 |
[PerformancePatterns] Service 올바르게 사용하기 (0) | 2017.05.18 |
Gradle 라이브러리 충돌 시 대처방법 (0) | 2017.05.12 |
Comments