LINUX.ORG.RU

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

 ,


1

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)

Ответ на: комментарий от vurdalak

Читаю вики cyanogenmod.

Читай. Прочитай еще, что убунта тебе пишет про тоже самое, когда ты в неё логинишься. Это называется отказ от ответственности.

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

А еще у меня телефон не госкомовский, поэтому гарантия местного магазина. Фиг его знает, какие у них там требования...

vurdalak ★★★★★
()

ура! у меня PandaBoard есть, и как раз OMAP4430 ^_^ кроме того, они пилят увеличение производительности и для Ubuntu armel/armhf, так что не только для Android, и выкладывают в специальном PPA все дрова и ядро и т.п. - обычная убунта + их ядро и дрова

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от vurdalak

А еще у меня телефон не госкомовский, поэтому гарантия местного магазина. Фиг его знает, какие у них там требования...

Тогда тем более пофигу. Шей спокойно.

tazhate ★★★★★
()
Ответ на: комментарий от bakugan

Разве не Google ведет разработку Android изначально под открытой лицензией MIT ?

Вернее Apache http://source.android.com/source/licenses.html

В правильно заданном вопросе содержится половина ответа. Именно изначальная лицензия Apache как раз и позволяет закрывать производный код, чем с успехом пользуется большинство компаний. Кроме Texas Instruments.

Dendy ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Откуда информация? Intel вон тоже лицензируют PowerVR у Imagination Technologies, но сорцы для разработки Intel EMGD (Embedded Media and Graphics driver) для Windows и Linux, поддерживающего PowerVR SGX 535 (Intel GMA500) у них вполне есть.

Инфа от TI. А что там у интеля - это другая история. Не исключено, что у них с PowerVR другие отношения.

AF ★★★
()
Ответ на: комментарий от 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
()

Я прочитал пост, я плачу, котаны. Расскажите, как мне сделать ведро быстрее, отзывчевее, ласковей. Что этой девке надо? Переписать ей все на ихнем NDK? Оторвать этой заразе интерфейс и написать асинхронную прослойку? Я хочу угареть по хардкору, проникнуться духом старой школы, котаны!

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

Для начала включить флаги оптимизации под NEON (аналог SSE в ARM). Это помимо возможной оптимизации некоторых узких векторизуемых мест подарит выигрыш в FPU операциях (забавный факт, что штатный VFPU и блок NEON отличаются по производительности как небо и земля).

Чтобы угореть по старой школе идёшь на http://infocenter.arm.com/help/index.jsp и куришь доки.

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

о опять же - чтобы убить телефон перепрошивкой - надо очень круто постараться.

Например прошить лого нестандартного размера, как на sams'е. :)

zgen ★★★★★
()
Ответ на: комментарий от zgen

Например прошить лого нестандартного размера, как на sams'е. :)

У меня это телефон пережил спокойно :)
К тому же, под «убить» ты что понимаешь? Первоначальный бутскрин ты ничем не убьешь, а что идет во время загрузки - побоку. Если есть возможность войти в рекавери и накатить прошивку - значит телефон не убит.

tazhate ★★★★★
()
Ответ на: комментарий от plm

отчего он стал пропускать каждый второй кадр.

Так может так и надо? А что ухудшилось из-за этого?

Buy ★★★★★
()

Вот это хорошо, а то многим не хватает скорости.

a1batross ★★★★★
()
Ответ на: комментарий от tazhate

К тому же, под «убить» ты что понимаешь? Первоначальный бутскрин ты ничем не убьешь,

кирпич, без возможности попасть в bootload'ер штатными средствами - без распайки кабеля и его присобачивание на контакты мат.платы телефона.

zgen ★★★★★
()
Ответ на: комментарий от Buy

Так может так и надо? А что ухудшилось из-за этого?

Тебе в телевизор так надо.

zgen ★★★★★
()
Ответ на: комментарий от zgen

кирпич, без возможности попасть в bootload'ер штатными средствами - без распайки кабеля и его присобачивание на контакты мат.платы телефона.

Жесть. Не, я до такого не дошел пока :)

tazhate ★★★★★
()
Ответ на: комментарий от Dendy

В правильно заданном вопросе содержится половина ответа.

если что - это был не вопрос :)

Именно изначальная лицензия Apache как раз и позволяет закрывать производный код, чем с успехом пользуется большинство компаний. Кроме Texas Instruments.

у TI хорошая поддержка Linux и многое открыто но это далеко не софтверная компания и в _разработке_ они не участвуют - они обеспечивают поддержку своего продукта. Нанимают дешевых азиатов, а открытость это не более чем маркетинговый ход для продвижения свих процессоров на рынок. Копните чуть глубже чем драйверы примитивной периферии и там все закрыто как у всех.

bakugan
()
Ответ на: комментарий от pevzi

А побочных эффектов это не повлечет?

Боишься зонд выскользнет?

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от vurdalak

Ну лично никогда не видел чтобы в CЦ отказывали от гарантии по причине перепрошивки. Особенно если кирпич приносишь или с явным железным дефектом. Хотя я в принципе и не упоминал о факте прошивки.

DNA_Seq ★★☆☆☆
()

Терзают смутные сомнения что путем включения -О3 можно добиться двукратного прироста скорости. Чёта ниразу не наблюдал подобного эффекта. Процентов 10-15 можно наскрести, но 100.

НЕ ВЕРЮ!!! (с)

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

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

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

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

Эм... интересно, в MIUI для HTC Desire добавят или не стоит ждать?

Ну ics так и не появился. Австралийцы забили на разработку miui ics, а больше никто ничего нормального не делал. Да и проблематично это, пока жмоты из htc не отдадут драйвера на железяку.

andreyu ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

изначально они пошли неправильным путем в плане отзывчивости интерфейса, начали это дело устранять с 3.0

Но и в ICS не решили эту проблему окончательно. Видимо есть у них какие то архитектурные ограничения и просто так их исправить не удается.

andreyu ★★★★★
()

Хм, я смотрю, Столлман в поездках времени не теряет. :)

Чувак пытается британский акцент имитировать. В целом неплохо получается. Акцент очень похож голос на акцент водителя из этого видео.

Zubok ★★★★★
()
Ответ на: комментарий от vurdalak

Не, ты не понял. Не при смене прошивки сломается, а вообще. Из-за заводского брака. И тогда я захочу сдать его по гарантии.

Пункт про модификацию программного обеспечения полный бред. Если следовать ему, то и устанавливать приложения (пусть и одобренные самим С.Брином) нельзя.

andreyu ★★★★★
()
Ответ на: комментарий от vada

Терзают смутные сомнения что путем включения -О3 можно добиться двукратного прироста скорости.

«Увеличения скорости удалось достигнуть за счёт внесения в компоненты платформы Android специфичных для ARM оптимизаций ...»

scott_tiger ★★★
()

Оптимизация - удел слабаков! Даешь увеличения частоты процессоров и 8-ядерные смартфоны!

amazpyel ★★★
()
Ответ на: комментарий от Rastafarra

он не говорил, что от лукавого. он говорил, что девушки его не любят. а так он бы рад. где-то онлайн даже была его переписка с девушкой.

noch
()

сдается мне немалую роль играет наличие в современных gcc (>= 4.6.3 кажется) поддержки vfp для arm процессоров. А скажем mer и nemomobile давно собирают именно с поддержкой vfp. ага

noch
()
Ответ на: комментарий от Dendy

Ну т.е. предлагаете платформу, которую сами не контролируете. У Intel те же проблемы.

Aceler ★★★★★
()
Ответ на: комментарий от noch

он не говорил, что от лукавого. он говорил, что девушки его не любят. а так он бы рад. где-то онлайн даже была его переписка с девушкой.

Видать потому и не любят. Мало какой девушке понравится, чтобы её личная переписка была опубликована.

rtvd ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

А он, похоже, думает что мы сами тут будем...

... упираться-собирать. Это не NDK даже. Это такой... «суповой набор» из тулчейна, ядра (с патчами от Lenaro, как я понимаю, ну и библиотеки.

The Linaro toolchain has been out in the open forever, Linux binaries are here, sources are here.

Linaro’s Android builds (that have all the changes required to make use of the Linaro toolchain efficiently) have been around forever, here.

The kernel source we’re using is available here.

The only thing we did for this demo that isn’t in the open yet is a rewrite of the string routines in Bionic, based on Linaro’s Cortex Strings library.

Read more: http://www.cnx-software.com/2012/06/03/linaro-android-puts-stock-android-to-s...

Я вот больше жду сейчас (если они конечно будут) вначале патчей для железок на уровне официальной гуглооси. А там, глядишь, и SDK/NDK подправят. Интересно что по данному поводу гугли сами толкуют...

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

Господи. Это же внебрачный сын Столлмана.

Ага. Презервативы для него не слишком свободны. :-)

f1xmAn ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

В принципе, да.

Но я пока боюсь судить что именно там эти парни поменяли. SDK Platform/System Images в принципе могут поменяться.

mr_noone
()

выключение -fno-strict-aliasing и включение -O3

Здравствуйте, глюки! Там что вообще студентота сидит в Linaro?!

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