- Гугл уноси оптимизације вођене профилима за AutoFDO директно у Андроид језгро како би смањио оптерећење процесора и потрошњу енергије.
- Шаблони извршавања из стварног света из 100 најчешће коришћених апликација воде компајлер да фаворизује „вруће“ путање кода и да депривира „хладне“.
- Рани тестови показују око 2.1% брже време покретања система и око 4.3% брже покретање хладних апликација, уз додатне добитке у ефикасности у позадини.
- AutoFDO се уводи у LTS гране Андроид језгра, андроид 16-6.12 и андроид 15-6.6, а планирано је проширење на Андроид 17 и новије верзије.
Андроид добија низ тихих, нисконивоских промена које имају за циљ да телефони осете бржи, а уз то и мало продужава век трајања батеријеУместо блиставих нових функција, Гугл се фокусира на то како језгро оперативног система доноси одлуке сваке милисекунде „испод хаубе“.
У средишту овог напора је техника под називом AutoFDO, скраћеница од Аутоматска оптимизација усмерена повратним информацијама примењена на Андроид језгроПреобликовањем начина на који се језгро компајлира на основу стварних података о коришћењу, Google покушава да смањи непотребно оптерећење процесора, смањи позадинско оптерећење и да постојећим уређајима пружи скромно, али приметно побољшање брзине одзива.
Шта AutoFDO заправо ради у Андроид кернелу
Током нормалног преузимања, компајлер мора да направи хиљаде микро-одлука о томе како организовати и подесити кодПогађа које су гране вероватне, које функције треба уградити, како инструкције треба распоредити у меморији и тако даље, углавном на основу статичких назнака и генеричких хеуристика.
Проблем је у томе што се ове претпоставке не поклапају увек са оним што се заиста дешава када је ваш телефон у употреби. Језгро, које може објаснити око 40% укупног времена процесора у Андроиду, могу трошити циклусе на ретко коришћеним путањама кода, док оне често коришћене нису оптимизоване тако агресивно као што би могле бити.
AutoFDO мења овај приступ тако што додаје податке компајлеру профили направљени од стварних образаца извршењаУместо ослањања углавном на теорију, процес изградње је вођен тиме како се код заправо понаша на уређајима, омогућавајући да се бинарни фајл језгра обликује према свакодневним радним оптерећењима.
За кориснике, ово се не приказује као ново подешавање или мени. Појављује се суптилно као мало брже реакције приликом покретања апликација или поновног покретања телефона, и како се мање процесорског времена троши на позадинске одлуке које корисници никада директно не виде.

Од статичких претпоставки до профила извршења у стварном свету
Традиционално, оптимизација вођена профилом ослањала се на инструменталне бинарне датотеке које су прикупљале податке током посебних покретања. То функционише, али може бити наметљиво и можда неће одражавати како људи заправо користе своје телефоне свакодневноAutoFDO иде лакшим путем заснованим на узорковању.
Google користи профилер за узорковање да би забележио Историја гранања процесора и путање инструкција док Андроид покреће реална радна оптерећењаОви узорци откривају који делови језгра су „врући“ (често се извршавају), а који су „хладни“ (ретко се додирују), без потребе за поновном изградњом свега уз помоћ тешке инструментације.
Конкретно за језгро, подаци се синтетишу у лабораторијском окружењу. Инжењери репродукују репрезентативна радна оптерећења која укључују 100 најпопуларнијих Андроид апликација из пакета за тестирање компатибилности. Ова комбинација је дизајнирана да имитира стварну употребу: отварање и затварање апликација, пребацивање између њих, синхронизацију у позадини и комуникацију између процеса.
Једном сакупљени, сирови трагови пролазе кроз процес агрегације и чишћењаПодаци из више покретања и уређаја се спајају, конвертују у стандардни LLVM AutoFDO формат профила и филтрирају тако да остану само релевантни симболи и функције. Хладне функције се често одсецају из профила како би се вратиле на конвенционалну хеуристику компајлера уместо да искривљују оптимизацију.
Овај курирани профил затим води нову изградњу језгра. Са тачним информацијама о томе које путање кода су најважније, компајлер може агресивније да угради критичне рутине, организује активни код да буде прилагођен кешу и смањи значај ретко коришћених грана. Резултат је језгро које је боље усклађено са радним оптерећењима која Андроид телефони заправо имају.
Колико бржи и ефикаснији може бити Андроид?
Први резултати интерних тестова компаније Google су скромни, али опипљиви. Са применом AutoFDO-а на језгро, време покретања уређаја се побољшава за отприлике 2.1%То неће претворити спори телефон у ракету, али може мало скратити чекање сваки пут када га поново покренете.
Добици су нешто израженији када се апликације отварају из „хладног“ стања — то јест, када се већ не налазе у меморији. Овде AutoFDO пружа око 4.3% смањење времена хладног лансирања, посебно корисно за захтевније апликације које се ослањају на изворне компоненте и сервисе језгра.
Испод тих јасних метрика, Гугл такође бележи побољшања у областима које су мање видљиве, али и даље важне: глађе заказивање у позадини, мање скокова процесора за рутинске задатке језгра и генерално ефикасније руковање операцијама на нивоу система. Све ово доприноси осећају да уређај брже реагује, чак и ако је тешко указати на једну драматичну промену.
Пошто језгро може да потроши велики део укупног капацитета процесора, чак и једноцифрени процентуални добици се преводе у ослобођени ресурси које могу да користе апликације и системски кориснички интерфејсИстовремено, смањење непотребног рада процесора неизбежно помаже енергетској ефикасности, тако да батерија доживљава неко олакшање без икаквих промена хардвера.
Гугл пажљиво позиционира ове предности као постепене. Корисници не би требало да очекују трансформацију преко ноћи, већ стално усавршавање начина на који се Андроид осећа и понаша током времена, посебно када се више таквих оптимизација наслања заједно у различитим издањима.
Одржавање стабилности уз промену начина на који је кернел изграђен
Понављајућа брига код сваке оптимизације вођене профилом јесте да ли она ризикује кршење очекиваног понашања или увођење суптилних грешакаУ случају AutoFDO-а, Google наглашава да ова техника мења начин на који компајлер даје приоритет и распоређује код, а не логику самог језгра.
Приступ је описан као „конзервативан по подразумевању“. То значи да су функције које нису добро представљене у високо верним профилним подацима преостало је стандардним стратегијама оптимизације уместо да се агресивно преобликују. Хладне или ретко извршаване путање се понашају у суштини као што би се понашале у традиционалној градњи, што смањује могућност регресија у нејасним сценаријима.
Пре него што се профили прихвате, они пролазе кроз вишеструке провере. Инжењери анализирају садржај профила — активне функције, број узорака и укупну величину — и упоређују га са претходним верзијама. Затим се гради нова слика језгра и бенчмаркови се покрећу како би се осигурало да су побољшања перформанси конзистентна и да се латенција или пропусни оптерећење неочекивано не погоршају код кључних радних оптерећења.
Ово није прва употреба AutoFDO-а од стране компаније Google. Ова техника је већ широко примењена за основне Андроид библиотеке, компоненте ChromeOS-а, па чак и интерна серверска инфраструктураТо претходно искуство делује као сигурносна мрежа, сугеришући да је сам стил оптимизације зрео, чак и ако је његова примена на Андроид језгро релативно нова.
Резултат је да је интеграција језгра AutoFDO-а дизајнирана да очувају функционалну стабилност уз истовремено постизање додатне ефикасностиЗа крајње кориснике, промена је замишљена да буде невидљива у смислу поузданости, али тихо корисна у смислу перформанси.
Како се профили освежавају и уводе током времена
Један статички профил би брзо постао застарео јер Андроид, апликације и обрасци коришћења се развијајуДа би AutoFDO био ефикасан, Google третира генерисање профила као текући процес, а не као једнократни задатак.
Профили за генеричку слику језгра (GKI) се регенеришу пре сваког новог издања LTS кернелаАжурирана радна оптерећења заснована на тренутним верзијама 100 најпопуларнијих апликација се поново репродукују, подаци се поново узоркују, а профили се реконструишу и валидирају. Овај покретни цевовод помаже да се осигура да новије верзије језгра прате како људи заправо користе Андроид у том тренутку.
Занимљиво је да Гугл примећује да радна оптерећења генерисана у лабораторији показују око 85% сличности на обрасце извршавања снимљене из интерних флота уређаја. Тај ниво преклапања сугерише да је синтетизовани приступ довољно близак понашању у стварном свету да би био користан за вођење оптимизације, а да га је и даље лакше контролисати и ажурирати.
Пошто ови профили прате стандардни LLVM AutoFDO формат, они се директно укључују у постојећи алати за анализу као што је llvm-profdataИнжењерски тимови могу да прегледају активне функције, истраже обрасце позива и провере да ли се напори за оптимизацију троше тамо где су заиста важни.
Током више итерација, овај поновљени циклус профилисања и реконструкције претвара AutoFDO у механизам континуираног подешавања за језгро, уместо једног подешавања везаног за једну верзију Андроида.
AutoFDO у свим Android стековима и алатима
Прелазак на AutoFDO у језгру надовезује се на рад који се већ неко време одвија на другим деловима Андроид стека. Подршка за AutoFDO је уграђен у систем за израду Андроида који користи AOSP, посебно за нативне модуле који се ослањају на дефиниције изградње у стилу плана.
За многе библиотеке и бинарне датотеке осетљиве на перформансе у оквиру AOSP-а, профили су већ прикупљени са стварних телефона и таблета. Ови готови AutoFDO профили се налазе поред извора и може се омогућити једноставним пребацивањем одговарајућих заставица за израду, тако да произвођачи уређаја који пажљиво прате AOSP наслеђују оптимизације уз минималан додатни рад.
Андроидов оквир за профилисање може прикупљати податке на више архитектура процесора, укључујући x86, x86_64, ARM и ARM64Све док је радно оптерећење репрезентативно, профил креиран на једној архитектури понекад се може прилагодити другој, што поједностављује имплементацију на хетерогеним линијама уређаја.
Програмери којима су потребне прилагођеније оптимизације — на пример, приликом додавања сопствених изворних компоненти или модификовања постојећих — подстичу се да прикупљајте профиле директно са развојних или тестних уређајаАлати као што је simpleperf и сродни услужни програми помажу у снимању потребних узорака без значајног ометања нормалног рада.
Укратко, AutoFDO није само трик са кернелом. Уклапа се у ширу стратегију где Најважнији делови Андроида се континуирано рекомпилирају уз помоћ података из стварне употребе, уместо да се ослањају искључиво на статичке претпоставке о учинку.
Где и када ће се ова побољшања језгра појавити
Гугл прво уводи изградње језгра засноване на AutoFDO-у. гране дугорочне подршке (LTS) Андроид језгра, тачније андроид16-6.12 и андроид15-6.6. Ове гране служе као основа за многе произвођаче, који затим додају сопствене измене и подешавања специфична за уређај.
Компанија је такође изложила планове за проширење употребе AutoFDO-а на будуће верзије GKI-ја као што су android17-6.18Како се нови уређаји испоручују са овим кернелима — и како постојећи телефони добијају ажурирања која повлаче новије LTS базе — више корисника би требало да почне да има користи од побољшаног понашања.
Гледајући унапред, Google истражује начине да проширите покривеност AutoFDO-а изван главне бинарне датотеке vmlinuxТо укључује увођење оптимизација вођених профилима у GKI модуле и, на крају, модуле произвођача изграђене помоћу Driver Development Kit-а. Ово би омогућило хардверским партнерима да примене исте технике профилисања на сопствене драјвере, ширећи предности дубље у екосистем.
Дугорочна визија је да изградње засноване на AutoFDO-у дотичу све већи део језгра и његових модула, од основног кода за заказивање до компоненти специфичних за уређајКако се тај утицај повећава, кумулативни ефекат на брзину реаговања и ефикасност могао би постати израженији, чак и ако је свака појединачна промена суптилна.
Све ово доприноси тихој, али значајној промени у начину на који је Андроид подешен на најнижим нивоима. Дозвољавајући да обрасци извршавања из стварног света воде компајлер, Гугл циља на телефоне који се осећају мало брже, троше мање циклуса процесора и чине... мало боље коришћење сваког милиампер-сата батерије — све то без потребе да корисници мењају уређаје или претражују подешавања.