작성자 : 김문규
최초 작성일 : 2009.10.19
device 개발 시에는 코드 유지 보수의 효율성과 성능 최적화간의 절묘한 trade-off가 중요합니다. 물론 제작자 입장에서는 성능최적화가 최우선되어야 한다고 생각할 수 있지만, 이 경우에는 차기 모델 출시시에 더 많은 공수가 투입되어야 하기때문에 꼭 좋은 선택만은 아닙니다.
안드로이드 개발자 사이트에 보면 몇가지 권고사항이 있습니다. 딱히 안드로이드 개발에만 국한되지는 않아 보입니다. 간단하게 소개합니다. 자세한 적용은 원문을 참조하세요.
http://developer.android.com/guide/practices/design/performance.html
안드로이드 개발 시 유의 사항
1. 불필요한 임시 객체를 만들지 말아라
2. 최대한 native method를 사용하라
3. virtual > interface
5. 내부적으로는 getter, setter를 사용하지 않는다. direct access해라.
6. 자주 사용할 경우에는 멤버 변수를 local copy 한 후 사용한다.
- 속도 측면에 이득이 있다.
7. constant는 final 선언을 한다.
8. enhanced for loop는 조심해서 사용한다.
- 컨테이너의 종류에 따라 성능이 떨어질 수 있다. ArrayList에서는 무조건 사용하지 않는다.
9. (외부 공개 API가 아닌 경우에는) enum은 가급적 쓰지 마라.
10. inner class에서 접근해야 하는 변수의 경우 public화 하자. (? 이거는 잘 이해가 안되네요.)
11. float, double은 가급적 쓰지 마라. 많이 느리다.
최초 작성일 : 2009.10.19
device 개발 시에는 코드 유지 보수의 효율성과 성능 최적화간의 절묘한 trade-off가 중요합니다. 물론 제작자 입장에서는 성능최적화가 최우선되어야 한다고 생각할 수 있지만, 이 경우에는 차기 모델 출시시에 더 많은 공수가 투입되어야 하기때문에 꼭 좋은 선택만은 아닙니다.
안드로이드 개발자 사이트에 보면 몇가지 권고사항이 있습니다. 딱히 안드로이드 개발에만 국한되지는 않아 보입니다. 간단하게 소개합니다. 자세한 적용은 원문을 참조하세요.
http://developer.android.com/guide/practices/design/performance.html
안드로이드 개발 시 유의 사항
1. 불필요한 임시 객체를 만들지 말아라
2. 최대한 native method를 사용하라
3. virtual > interface
Map myMap1 = new HashMap();
HashMap myMap2 = new HashMap();
후자를 사용한다.
4. static > virtualHashMap myMap2 = new HashMap();
후자를 사용한다.
5. 내부적으로는 getter, setter를 사용하지 않는다. direct access해라.
6. 자주 사용할 경우에는 멤버 변수를 local copy 한 후 사용한다.
- 속도 측면에 이득이 있다.
7. constant는 final 선언을 한다.
8. enhanced for loop는 조심해서 사용한다.
- 컨테이너의 종류에 따라 성능이 떨어질 수 있다. ArrayList에서는 무조건 사용하지 않는다.
9. (외부 공개 API가 아닌 경우에는) enum은 가급적 쓰지 마라.
10. inner class에서 접근해야 하는 변수의 경우 public화 하자. (? 이거는 잘 이해가 안되네요.)
11. float, double은 가급적 쓰지 마라. 많이 느리다.
'개발 노트' 카테고리의 다른 글
[javascript] JSON 사용시 유의 사항 (0) | 2009.09.08 |
---|---|
[Java] 절대 코더들도 까먹는 형변환 (int, double, long.. <->String) (0) | 2009.08.06 |
[Javascript] XML <-> JSON (0) | 2009.08.01 |
브라우저 호환성을 고려하며 개발하기 (0) | 2009.07.30 |
한국의 개발 현실의 한가운데에서 잠시... (0) | 2009.07.29 |