Monday, August 17, 2009

coscup 2009的收穫

最大的收穫大概來自於星期天下午的
Smaller and Faster Android: Optimization and Toolchain Perspective

因為只有半小時 他講超快的 還用英文

裡面有講到
Interprocedural optimization -> 用 arm-eabi-gcc --fripa

還有
FDO -> Feekback Directed Optimization
Build-Run-Build
Class Loading Profiler -> trade off between boot-up time and app init time
ICF -> Identical Comdat Folding 不過他說Comdat 應該要說是Code 才是 還有講到一個IPO的term 不知道是什麼的縮寫就是了
Profiled Guided Optimization -> 跟FDO有關?

並講到了google 目前正在開發的gold linker
http://en.wikipedia.org/wiki/Gold_(linker)
http://www.airs.com/blog/archives/38
另外之後的walkingice有講到目前bionic的linker沒有處理weak symbol


還有gcc的版本 arm-eabi-gcc
目前Android用的是4.2.1
donuts會用4.3.1 而之後的E'clair會用4.4.1
分別是在 size improvement 上
4.2.1 -> 3%
4.3.1 -> 15%
4.4.1 -> 17%
而這三者的performance是差不多的

在libstdc++-v3方面 好像還不是很完整
要用就要把他static link ???

arm-eabi-gcc 會用一個option -mandroid
不過還不是很完整 所以還沒merge back to gcc

之後講了一些用到的compiler option

-fvisibility=hidden
__attribute__((visibility("public"))

-ffunction-session, -Wl,--gc-sessions
-finline-sessions, -fno-inline-functions-called-once

No comments: