Upataji wa Utendaji Unaongozwa na Profaili (Profile-Guided Optimization) kwa Ajili ya Kuanza kwa Programu za Android

Tulipunguza muda wa kuanza kwa Android (cold start) kutoka sekunde 1.2 hadi 380ms.

Programu nyingi hutumia mfumo wa uundaji (compilation mode) ambao ni wa polepole zaidi wakati wa uzinduzi wa kwanza. Android hutumia mfumo wa "interpret-only" wakati mtumiaji anapoweka programu yako kwa mara ya kwanza. Hii hufanya kuanza kwa programu kuwa polepole. Mfumo huuboresha (optimize) msimbo wakati tu wa muda wa mapumziko (idle time) baadaye.

Unaweza kurekebisha hili kwa kutumia mchakato wa hatua tatu.

  1. Tengeneza Baseline Profiles Baseline Profiles huambia mfumo ni madarasa (classes) gani ya uundaji (compile) wakati wa uwekaji (install time). Tumia Macrobenchmark kutengeneza hizi kwenye mchakato wako wa CI. Profaili zetu zilijumuisha 12% ya mbinu (methods) lakini zilidhibiti 94% ya muda wa kuanza.

  2. Washa DEX Layout Reordering Hii ni mstari mmoja tu kwenye sifa zako za Gradle. Inaiambia R8 kuweka madarasa ya kuanza pamoja kwenye faili yako ya DEX. Hii hupunguza makosa ya ukurasa (page faults) kwa 30% hadi 50%. Madarasa yanapobaki pamoja, mfumo hupakia data zisizo na lazima kidogo kutoka kwenye diski.

  3. Tumia Cloud Profiles Google Play hukusanya profaili kutoka kwa watumiaji na kuzituma kwa programu zinazowekwa upya. Hii huongeza zaidi faida zako za kasi.

Matokeo ya majaribio yetu:

Vidokezo muhimu kwa mtiririko wako wa kazi:

Unganisha tabaka hizi ili kutengeneza programu zenye kasi zaidi.

Chanzo: https://dev.to/software_mvp-factory/profile-guided-optimization-for-android-app-startup-2i7a