Ако имате телефон с Android, който започва да се затруднява при отваряне на взискателни приложения, може би обмисляте да си купите нов телефон. Въпреки това. Google работи по голямо обновяване на системата така че много от настоящите устройства да могат да работят по-плавно, без да се налага да плащате допълнително. Това подобрение се нарича AutoFDO и действа директно върху вътрешните механизми на операционната система.
Тази нова функция не е просто актуализация на интерфейса или бляскава функция. Тя е... Разширена оптимизация, приложена към ядрото на AndroidПроцесорът е сърцето, което координира всичко между хардуера и приложенията. Благодарение на AutoFDO, системата взема по-интелигентни вътрешни решения. Това води до малко по-бърз и по-бърз телефон с по-добра консумация на батерия.
Какво е AutoFDO и защо е толкова важно за Android?
AutoFDO означава „Оптимизация, ръководена от автоматична обратна връзка“Това е техника, която Google интегрира в Android, за да оптимизира по-добре производителността на процесора. Вместо да разчита единствено на предположения или общи правила при компилирането на код, системата използва данни за употреба от реалния свят, за да реорганизира начина, по който се изпълняват задачите.
Казано по-просто, AutoFDO е система от оптимизация, базирана на примери за поведение от реалния святКомпилаторът събира информация за това как работи телефонът, докато изпълнява често срещани приложения. Въз основа на това той пренарежда кода, така че процесорът да работи по-ефективно. По този начин ядрото приоритизира пътищата за изпълнение, които се използват най-често в ежедневните задачи.
Досега Android вече използваше техники за оптимизация, като например базирана на инструменти Profile Guided Optimization (PGO). AutoFDO е неговият естествена и по-сложна еволюциязащото избягва необходимостта от промяна на кода само за измерването му и най-вече отразява много по-добре как реалните потребители използват мобилния телефон, а не само това, което е тествано в лаборатория с изкуствени натоварвания.
Според екипа на LLVM за Android, целта на тази актуализация е да намали натоварването на процесора на ядрото, което може да достигне консумират до 40% от капацитета за обработка при определени задачи. Ако тази част от системата се облекчи, ресурсите се освобождават за всичко останало.
Как работеше традиционната компилация на Android
В класическата система за компилация, компилаторите са базирани на Евристики и статични улики да вземат решения: кои функции да вградят онлайн, кои клонове на условно оператор са по-вероятни, как да подредят определени инструкции и т.н. Това са правила, които обикновено работят „добре като цяло“, но не винаги съответстват на това, което се случва на реално устройство.
Всеки път, когато използвате мобилния си телефон, процесорът е изправен пред хиляди малки вътрешни решения в секундаТой трябва да избере кои части от кода да приоритизира, кой път да поеме, когато има няколко алтернативи, как да управлява прехода между функции и кои данни да държи леснодостъпни в кеша. Цялата тази невидима обработка консумира процесорно време. И, естествено, също и енергия.
Проблемът е, че когато тези решения се основават единствено на теории или синтетични доказателства, компилаторът може да допусне грешки в своите прогнози. Това означава, че Ядрото може да е лошо оптимизирано за употреба в реалния святГубейки част от мощността на чипа за редки пътища на изпълнение, пренебрегвайки маршрутите, които се използват ежедневно.
В свят с все по-мощни мобилни телефони, тези несъответствия може да изглеждат малки, но те се натрупват. В крайна сметка, сборът от неефективните решения Много е забележимо. Последиците: малко по-бавно стартиране, приложения, които се отварят малко по-бавно, и батерия, която се изтощава по-бързо от желаното. Особено на по-стари устройства.
Google внедряваше подобрения от този тип от известно време през изпълними файлове и системни библиотекиСега преминаването към ядрото представлява значителна промяна. Все едно преминавате от подреждане на чекмедже към реорганизиране на цялата къща. Въздействието върху цялостната производителност е по-голямо, защото засяга всичко, което преминава през операционната система.
Как AutoFDO оптимизира ядрото с данни за употреба в реалния свят
Основната разлика между AutoFDO и предишните подходи е, че Той се захранва от модели на изпълнение, събрани от самия процесор. докато системата работи. Вместо да си „представяте“ как ще се използва кодът, погледнете директно какво се случва на мобилното устройство.
За да направи това, Google следи История на клоновете на процесораС други думи, той проследява какви решения за преход и пътища на изпълнение е следвал процесорът, докато е работил със системата и приложенията. Това проследяване се извършва с помощта на стандартни LLVM профили за семплиране, които позволяват заснемане както на „горещи“ секции (тези, които се изпълняват много често), така и на „студени“ секции (тези, които рядко се използват).
С тези данни инженерите създават лабораторна среда, в която възпроизвеждат Представителни натоварвания, базирани на 100-те най-популярни приложенияТам се симулира ежедневната употреба: отваряне, затваряне и превключване между приложения за социални мрежи, съобщения, сърфиране, видео, леки игри и т.н. Точно както би направил всеки средностатистически потребител.
След като профилите бъдат генерирани, ядрото на Android се прекомпилира, включвайки тази информация. След това компилаторът може да приеме много по-прецизни решения за оптимизацияТова приоритизира кода, който действително се използва, и пренарежда или компресира по-малко критичните части. Резултатът е система, по-фино настроена за действителното поведение на устройствата.
Освен това, системата за събиране на профили AutoFDO има ясни предимства пред конвенционалните инструменти. Събирането на данни е много по-дискретен и гъвкавПрофилите могат да бъдат събирани от устройства за разработка или дори от потребителски терминали, без да се променят правилата за компилиране, и тези профили отразяват автентични модели на употреба, а не синтетични сценарии.

Директни ползи: по-бързо време за стартиране и приложения, които се отварят по-рано
В първоначалните вътрешни тестове Google наблюдава, че внедряването на AutoFDO в ядрото позволява... Телефонът се стартира с около 2,1% по-бързоНе е впечатляващ скок, който ще забележите, сякаш имате чисто нов телефон, но означава малко намаляване на времето за чакане всеки път, когато включвате или рестартирате устройството.
Подобренията са още по-забележими при така нареченото „студено стартиране“ на приложения. Тоест, когато отворите приложение за първи път след включване на телефона си или след като го затворите напълно. В този сценарий, Времето за стартиране на приложението е намалено с около 4,3%Това е особено забележимо в тежки приложения или такива с много вградени компоненти.
Въпреки че тези цифри може да изглеждат скромни, важно е да се помни, че ядрото е отговорно за много значителна част от натоварването на процесора. Ако този компонент използваше до 40% от капацитета за обработкаВсяка добре насочена оптимизация освобождава ресурси, които могат да бъдат използвани за подобряване на цялостната плавност, многозадачността или реакцията при допир.
Друг положителен ефект е намаляване на потреблението на енергия, свързано с вътрешните процесиЧрез избягване на ненужни пътища на кода и минимизиране на разходите за лоши решения, процесорът работи по-малко, за да направи едно и също нещо. Това се изразява в леко подобрение на живота на батерията, което ѝ позволява да издържи малко по-дълго при ежедневна употреба.
Google също така е открила допълнителни подобрения в други показатели за ефективност Тези подобрения не са толкова очевидни за крайния потребител, но допринасят за по-стабилно изживяване: по-малко пикове на натоварване, по-ниска латентност при определени системни операции и донякъде по-организирано управление на ресурсите „под капака“.
Въздействие върху ежедневното преживяване: по-голяма плавност без смяна на мобилни устройства
От гледна точка на потребителя, цялата тази ниско ниво работа се превръща в усещане за по-голяма пъргавина при използване на AndroidИнтерфейсът е по-адаптивен, преходите между екраните и менютата са по-плавни, а превключването между приложенията е по-бързо. Това е особено вярно за моделите от среден клас и по-старите устройства.
Чрез фокусиране на оптимизацията върху най-важните точки на кода, системата спира да се зацикля в определени вътрешни задачи и Освободете силата си за това, което наистина има значениеОтваряне на приложения, сърфиране в интернет, използване на камерата или безпроблемно превключване между множество приложения. Всеки, който държи телефона, няма да види радикална промяна, а по-скоро непрекъснато подобрение, което прави всичко да работи по-плавно.
Тази гъвкавост е от полза и за живота на батерията. Процесор, който спира да губи цикли за безполезни решения. Това намалява общото усилие и генерира по-малко потребление.Това е в съответствие с други скорошни инициативи на Google, като например предупреждения в Google Play за приложения, които консумират твърде много батерия или ресурси.
На практика крайната цел е потребителите да могат да да се възползвате максимално от мощността на настоящите чипове без да се налага да сменяте телефона, просто защото системата е износена. Тихите пачове, които интегрират AutoFDO в ядрото, са прецизно проектирани да удължат живота на съвременните устройства и да дадат втори живот на тези, които все още са напълно използваеми.
В средносрочен план Google възнамерява да разшири същия този подход за обучение, базиран на реалния свят, и към други критични компоненти, като например камери или мрежови модемиАко могат да оптимизират комуникацията с тези ключови елементи, ползите от производителността и ефективността биха могли да се разпрострат отвъд ядрото на операционната система.
AutoFDO в системата за изграждане на Android
AutoFDO не е просто теоретична идея. Това е интегриран в самата система за изграждане на Android който беше въведен, започвайки с Android 12. Тази система поддържа оптимизация на оригинални модули, които имат правила за компилация тип „blueprint“, което позволява AutoFDO да се активира директно в споделени библиотеки или двоични файлове.
За проекти, които са част от AOSP (Android Open Source Project), вече има съществуващи AutoFDO профили, подготвени за повечето компоненти, чувствителни към производителносттаТези профили са събрани от реални телефони и таблети, с представителни модели на употреба, и се съхраняват в хранилището в пътя, определен за вземане на проби от профили.
AutoFDO идва активирано по подразбиране в AOSPТова означава, че много производители, използващи тази кодова база, автоматично се възползват от тези оптимизации, ако не ги деактивират. За да активирате AutoFDO в конкретно правило за изграждане, просто добавете съответното поле (например afdo: true) към библиотеката или дефиницията на изпълнимия файл.
Андроидът е способен събиране на профили в различни архитектури на процесоривключително x86, x86_64, ARM и ARM64. Всъщност, дори ако профилът е генериран за конкретна архитектура, той може да бъде използван повторно и на други, стига моделът на употреба да е представителен. Това улеснява внедряването на оптимизации в широк спектър от устройства.
За по-специфични случаи, като например допълнителни проекти, локално модифициран код или много специфични модели на употреба, Google препоръчва събиране на профили директно от устройства за разработка или потребителско оборудванеизползвайки инструменти като Profcollect или Управлявайте Android от вашия компютър.
Събиране и анализ на AutoFDO профили
Екосистемата на Android използва Стандартни профили на LLVM за AutoFDOГаранция за съвместимост със стандартните инструменти за анализ. Тези профили могат да бъдат проверени с помощта на помощни програми като llvm-profdata, които ви позволяват да разберете подробно кои функции и кодови пътища се изпълняват най-често.
В рамките на дървото на кода на AOSP, Google включва специфични скриптове, като например afdo_summary.sh, които Те генерират автоматични обобщения на най-актуалните функции Според събраните данни, тази информация е от решаващо значение за инженерните екипи, които искат допълнително да усъвършенстват начина, по който се разпределят усилията за оптимизация.
За разработчиците, които интегрират AutoFDO в собствените си компилации, този процес предлага сравнително ясна картина на където са концентрирани пречките и кои части от кода заслужават повече внимание. Вместо да оптимизират сляпо, те могат да проверят дали функциите, които са очаквали да бъдат критични, всъщност са такива. Или, напротив, дали има неочаквани области на системата, които носят по-голямо бреме.
Друг интересен аспект е, че AutoFDO позволява събирайте данни дискретнобез необходимост от повторно компилиране с тежка инструментална екипировка, която би могла да промени поведението на системата. Това прави възможно получаването на по-автентични профили и намалява въздействието върху производителността при събирането на информация.
Благодарение на тези инструменти, интеграцията с LLVM прави AutoFDO ключова част от стратегията за непрекъсната оптимизация на AndroidТова не е статична функция, а жива система, която може да настройва фино работата на ядрото и други компоненти, когато моделите на употреба се променят и се пускат нови версии на операционната система.
Внедряване в Android 15, 16 и 17 и ролята на производителите
Google започна да внедрява AutoFDO в LTS (дългосрочна поддръжка) клонове на ядрото на AndroidПо-конкретно, във версии Android 16-6.12 и Android 15-6.6. Тези клонове служат като база за производителите, които изграждат свои собствени слоеве за персонализиране и адаптират системата към своя хардуер.
Компанията също така потвърди намерението си да разширете техниката до Android 17 С ядро, базирано на Android 17-6.18 и допълнителни модули, които ще продължат да се възползват от AutoFDO. С стабилизирането на тези версии, подобренията ще бъдат включени в новите телефони, пуснати на пазара. В много случаи те ще бъдат внедрени и в съществуващите устройства чрез софтуерни актуализации.
Според Google, след като тези промени бъдат напълно внедрени в Android 15 и 16 – и пристигнат по подразбиране в Android 17 – потребителите ще забележат малко по-опростен интерфейс, по-бързо превключване между приложенията и малко по-ефективно управление на батерията. Няма да видите радикална промяна за един ден, а по-скоро постепенно подобрение в цялостната производителност на телефона.
Във всеки случай, основното послание е ясно: Google е поел ангажимент да оптимизира изцяло това, което вече съществува.Вместо просто да добавяте лъскави функции или да изисквате все по-мощен хардуер, AutoFDO е друга част от тази стратегия за максимизиране на производителността.
С всичко това на масата е ясно, че AutoFDO не е просто техническа любопитност. Това е... Актуализация на ниско ниво, предназначена да направи Android по-бърз, по-ефективен и по-издръжлив без потребителят да е длъжен да прави каквото и да било. Въпреки че подобренията може да изглеждат малки на пръв поглед, кумулативният им ефект върху стартирането на системата, времето за стартиране на приложенията и консумацията на батерия осигурява точно онази допълнителна плавност, която е ценена при ежедневна употреба. Особено на телефони, които все още имат много да предложат, но започват да се усещат бавни. Чудесна идея.
