LINUX.ORG.RU

Двукратный прирост произодительности Android

 ,


0

1

Инженеры из консорциума Linaro, созданного компаниями ARM, Freescale, IBM, Samsung, ST-Ericsson и Texas Instruments с целью улучшения поддержки архитектуры ARM в Linux и разнообразных открытых приложениях, провели работу по оптимизации производительности Android 4 (Ice Cream Sandwich). Отчёт о проделанных улучшениях размещён на YouTube в форме видеоролика, который демонстрирует работу оптимизированной и неоптимизированной ОС для смартфонов на идентичном наборе оборудования — системе на основе SoC Texas Instruments PandaBoards (OMAP4430).

В обоих случаях оборудование, версия Android и ПО для измерения производительности (oxBench) идентично. По результатам тестирования версия Android с оптимизациями показывает 60 кадров в секунду, тогда как оригинальная версия только 30. Для измерения был выбран тест, который упирается в производительность процессора, ибо оптимизация для графики невозможна по причине закрытости драйверов для видеоакселератора.

Увеличения скорости удалось достигнуть за счёт внесения в компоненты платформы Android специфичных для ARM оптимизаций и использования более новой версии программного обеспечения для сборки (GCC 4.7) в сочетании с более агрессивными опциями для компилятора (выключение -fno-strict-aliasing и включение -O3).

>>> Подробности

★★★★

Проверено: JB ()
Последнее исправление: Aceler (всего исправлений: 3)

Bernhard Rosenkränzer?

Розенкрейцеры? Ну... эти ещё и не то могут...

внесения в компоненты платформы Android специфичных для ARM оптимизаций

Возможно.

использования более новой версии программного обеспечения для сборки (GCC 4.7)

Вероятно, но спорно...

с более агрессивными опциями для компилятора (выключение -fno-strict-aliasing и включение -O3)

-O3 это более специфично для плюсов (там есть некоторые вещи, которые с -O3 лучше оптимизируются). Для С, скорее наверное -O2 с рядом дополнительных -f* опций. Ну или код на плюсах писан...

mr_noone
()
Ответ на: Bernhard Rosenkränzer? от mr_noone

Кстати, да...

Он, как ни странно, говорит о «CPU staff»... Т.е., он, получается, пересобрал новым toolchain'ом систему? Хммм... Ну, будем подождать очередного апдейта. Посмотреть будем.

mr_noone
()
Ответ на: комментарий от anonymous

Ну, предположим,

не «нукай», не запряг.

А по поводу опций, давайте, любезный, читать общими силами официальную документацию на gcc:

Вот это про -O2:

 -O2 turns on all optimization flags specified by -O. It also turns on the following optimization flags:

          -fthread-jumps 
          -falign-functions  -falign-jumps 
          -falign-loops  -falign-labels 
          -fcaller-saves 
          -fcrossjumping 
          -fcse-follow-jumps  -fcse-skip-blocks 
          -fdelete-null-pointer-checks 
          -fdevirtualize 
          -fexpensive-optimizations 
          -fgcse  -fgcse-lm  
          -finline-small-functions 
          -findirect-inlining 
          -fipa-sra 
          -foptimize-sibling-calls 
          -fpartial-inlining 
          -fpeephole2 
          -fregmove 
          -freorder-blocks  -freorder-functions 
          -frerun-cse-after-loop  
          -fsched-interblock  -fsched-spec 
          -fschedule-insns  -fschedule-insns2 
          -fstrict-aliasing -fstrict-overflow 
          -ftree-switch-conversion -ftree-tail-merge 
          -ftree-pre 
          -ftree-vrp
     
 Please note the warning under -fgcse about invoking -O2 on programs that use computed gotos. 

А теперь про -O3:

Ю Optimize yet more. -O3 turns on all optimizations specified by -O2 and also turns on the -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize and -fipa-cp-clone options

Взято из — http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Optimize-Options.html#Optimize-Op...

Теперь Вы, милейший, соизволите мне предложить разобрать для Вас эти опции по порядку и, заодно, прокомментировать что они делают?

mr_noone
()
Ответ на: Ну, предположим, от mr_noone

-O3 это более специфично для плюсов (там есть некоторые вещи, которые с -O3 лучше оптимизируются)

Давай, относительно плюсов, про -finline-functions можешь пропустить.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.