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의 경우 컴파일러가 인라인화 해주기도 한다니 참고!

'Android' 카테고리의 다른 글

Avoding memory leaks  (0) 2012.09.10
onCreateDialog/onPrepareDialog  (8) 2012.09.06
큰 Bitmap 사용 시 주의점  (0) 2012.08.31
AnimationDrawable 사용 시 주의점  (2) 2012.08.24
System(0) 으로도 죽지 않는 app 종료 시키기  (0) 2012.08.21
Posted by 독뽀
,