Android
안드로이드 성능 개선
독뽀
2012. 8. 31. 13:45
반응형
요약하자면 가장 많이 나오는 내용이..
멤버 필드 접근이 빈번하지 않도록 지역 변수로 값을 복사해서 써라..
멤버 필드나 메서드에 final 키워드를 자주 쓰자. 지역 변수에는 성능상 이득이 없음
한 클래스 내에서의 getter/setter를 되도록 사용하지 말고 필드에 직접 접근하라
(객체 지향적 관점에서의 인터페이스로서는 묵과함)
결국 멤버 필드 및 중복 함수 호출로 인한 성능 저하를 피하자는 얘기
뭐 대충 이런 비용 차이..
함수를 통한 멤버 필드 접근 > 멤버 필드 접근 > 지역 변수
아래는 위 링크에 나와있는 대략적인 도표
행동 |
시간 |
지역 변수 더하기 |
1 |
멤버 변수 더하기 |
4 |
String.length() 호출 |
5 |
빈 정적 네이티브 메소드 호출 |
5 |
빈 정적 메소드 호출 |
12 |
빈 가상 메소드 호출 |
12.5 |
빈 인터페이스 메소드 호출 |
15 |
HashMap의 Iterator:next() 호출 |
165 |
HashMap의 put() 호출 |
600 |
XML로부터 1 View 객체화(Inflate) |
22,000 |
1 TextView를 담은 1 LinearLayout 객체화(Inflate) |
25,000 |
6개의 View 객체를 담은 1 LinearLayout 객체화(Inflate) |
100,000 |
6개의 TextView 객체를 담은 1 LinearLayout 객체화(Inflate) |
135,000 |
빈 activity 시작 |
3,000,000 |
잘 안쓰던 for-each 나 HashMap 등도 적극 활용해보아요
for-each의 경우 컴파일러가 인라인화 해주기도 한다니 참고!