- яшчэ адно выдатнае выступленне на Google I / O, прысвечанае аптымізацыі ў асяроддзі выканання Android P. Выступленне тычыцца трох пунктаў:
- Kotlin;
- памяць;
- хмарныя профілі.
З Kotlin ўсё аказалася даволі проста, дакладчыкі распавялі аб вынясенні null-праверак у выклікаюць функцыі, аптымізацыі цыклаў і некаторых іншых рэчаў.
Дзве астатнія часткі дакладу куды цікавей. Па-першае, CompactDex - спецыяльны кампактны фармат выкананага файла Dex (у ім захоўваецца код прыкладанняў для Android). У Android P фармат CompactDex выкарыстоўваецца для захоўвання вынятага з APK кода прыкладання, а таксама для захоўвання кода прыкладання ў аператыўнай памяці.
У сярэднім CompactDex дазволіў скараціць памер які захоўваецца ў памяці прылады кода прыкладання на 11,6%. Гэта датычыцца і пастаяннай памяці, і аператыўнай, але не тычыцца саміх прыкладанняў, якія распаўсюджваюцца праз маркет.
Таксама ў Android P быў удасканалены JIT-кампілятар, а дакладней яго частка, адказная за аптымізацыю размяшчэння дадзеных у аператыўнай памяці, калі найбольш часта выкарыстоўваюцца і патрэбныя пры загрузцы прыкладання метады размяшчаюцца бліжэй да пачатку аператыўнай памяці працэсу. Нагадаю, што пачынаючы з сёмай версіі Android выкарыстоўвае гібрыдны JIT / AOT-кампілятар, які спачатку выконвае прыкладання, выкарыстоўваючы віртуальную машыну, а толькі затым перакладае прыкладанне ў машынныя інструкцыі.
![- яшчэ адно выдатнае выступленне на Google I / O, прысвечанае аптымізацыі ў асяроддзі выканання Android P](/wp-content/uploads/2019/12/be-aptymizacya-android-p-1.png)
Як адбываецца апрацоўка устаноўленага APK ў Android O і Android P
Ну і нарэшце, хмарныя профілі. Гэта больш простая, але эфектыўная ідэя. Падчас выканання любога прыкладання Android будуе профіль яго выканання. У будучыні такі профіль дазваляе асяроддзі выканання «падбудавацца» пад прыкладанне і запусціць яго хутчэй.
Ідэя функцыі Cloud Profiles ў тым, каб сабраць дадзеныя Профайлінг з розных прылад, агрэгаваць іх і прымацаваць да дадатку ў Google Play ў выглядзе адзінага файла Профайлінг. Калі карыстальнік запампуе дадатак, ён таксама атрымае файл Профайлінг, і сістэма зможа выкарыстаць яго для паскарэння запуску прыкладання. У далейшым профіль будзе папоўнены і пашыраны самім прыладай.
На ўласных прыкладаннях Google сістэма хмарнага Профайлінг дала выйгрыш у хуткасці першаснага запуску прыкладна ў 20%.
![](/wp-content/uploads/2019/12/be-aptymizacya-android-p-2.png)
Як працуюць хмарныя профілі
Падчас тэставанняў сістэмы аўтары зрабілі цікавыя высновы: у сярэднім у дадзеныя Профайлінг трапілі толькі 14% кода прыкладання, а гэта значыць, што астатнія 86%, хутчэй за ўсё, наогул не выкарыстоўваюцца. Але гэта не абавязкова мёртвы код, гэта могуць быць функцыі, адключаныя на розных версіях Android, ці, напрыклад, код адладкі, адключаны ў релізной версіі.