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
- callstack 출력
- BlockingQueue Capacity
- 음량표준화
- HashMap vs ArrayMap
- android enum
- Service관리
- Intent String 변환
- java callstack
- Replaygain
- APK로딩
- corePoolSize
- Dagger2란
- android network
- 네트워크 디버깅
- MediaDataSource
- RxJava Programming
- enum performance
- gitignore
- 오픈소스라이선스
- RxJava 스터디
- ArrayMap
- convert Intent to string
- convert string to intent
- lufs
- print callstack
- gitignore작성법
- so파일 동적로딩
- Service 팁
- mitmproxy
- APK 동적로딩
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