ANDROID
성능 향상을 위한 TIP ..
BLUE-NOTE
2011. 3. 17. 17:35
- Time Scale !!
- 인간의 인터렉션 스케일은 초당 10~30 interaction이다.
- 인간의 perception 스케일은 초당 25~30 image frame 이다.
- audio는 100msec 정도는 되야 연속적인 오디오!
- Garbage collocter !!
- short-lived한 object도 GC가 필요하다.
- long-lived한 object는 귀중한 메모리를 붙잡고 있다.
- Loop Wisely !!
- (1) for (int i = initializer; i >= 0; i--)
(2) int limit = calculate limit;
for (int i = 0; i < limit; i++)
(3) Type[] array = get array;
for (Type obj : array)
(4) for (int i = 0; i < array.length; i++)
(5) for (int i = 0; i < this.var; i++)
(6) for (int i = 0; i < obj.size(); i++)
(7) Iterable<Type> list = get list;
for (Type obj : list) <- Danger
- Memory..Clean VS Dirty..
- clean vs. dirty
- clean: mmap()ed and unwritten
- dirty: malloc()ed - shared vs. private
- shared: used by many processes
- private: used by only one process - clean (shared or private)
- common dex files (libraries)
- application-specific dex files - shared dirty
- ??? - private dirty
- application “live” dex structures
- application heap