Аптымізацыя Android P

- яшчэ адно выдатнае выступленне на 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

Як адбываецца апрацоўка устаноўленага APK ў Android O і Android P

Ну і нарэшце, хмарныя профілі. Гэта больш простая, але эфектыўная ідэя. Падчас выканання любога прыкладання Android будуе профіль яго выканання. У будучыні такі профіль дазваляе асяроддзі выканання «падбудавацца» пад прыкладанне і запусціць яго хутчэй.

Ідэя функцыі Cloud Profiles ў тым, каб сабраць дадзеныя Профайлінг з розных прылад, агрэгаваць іх і прымацаваць да дадатку ў Google Play ў выглядзе адзінага файла Профайлінг. Калі карыстальнік запампуе дадатак, ён таксама атрымае файл Профайлінг, і сістэма зможа выкарыстаць яго для паскарэння запуску прыкладання. У далейшым профіль будзе папоўнены і пашыраны самім прыладай.

На ўласных прыкладаннях Google сістэма хмарнага Профайлінг дала выйгрыш у хуткасці першаснага запуску прыкладна ў 20%.

Як працуюць хмарныя профілі

Падчас тэставанняў сістэмы аўтары зрабілі цікавыя высновы: у сярэднім у дадзеныя Профайлінг трапілі толькі 14% кода прыкладання, а гэта значыць, што астатнія 86%, хутчэй за ўсё, наогул не выкарыстоўваюцца. Але гэта не абавязкова мёртвы код, гэта могуць быць функцыі, адключаныя на розных версіях Android, ці, напрыклад, код адладкі, адключаны ў релізной версіі.