Android

안드로이드 성능 개선

독뽀 2012. 8. 31. 13:45
반응형

http://rags.tistory.com/91

 

요약하자면 가장 많이 나오는 내용이..

 

멤버 필드 접근이 빈번하지 않도록 지역 변수로 값을 복사해서 써라..

멤버 필드나 메서드에 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의 경우 컴파일러가 인라인화 해주기도 한다니 참고!