Android App Startup માટે Profile-Guided Optimization

અમે અમારો Android cold start 1.2s થી ઘટાડીને 380ms કર્યો.

મોટાભાગની એપ્સ પ્રથમ લોન્ચ દરમિયાન સૌથી ધીમા compilation mode પર ચાલે છે. જ્યારે વપરાશકર્તા તમારી એપ પહેલીવાર ઇન્સ્ટોલ કરે છે, ત્યારે Android "interpret-only" mode નો ઉપયોગ કરે છે. આના કારણે તમારું startup ધીમું બને છે. સિસ્ટમ પછીથી માત્ર idle time દરમિયાન જ કોડને optimize કરે છે.

તમે આ ત્રણ-પગલાંની pipeline દ્વારા આ સમસ્યા સુધારી શકો છો.

  1. Baseline Profiles જનરેટ કરો Baseline Profiles સિસ્ટમને જણાવે છે કે ઇન્સ્ટોલ કરતી વખતે કઈ classes ને compile કરવી. તમારા CI pipeline માં આ બનાવવા માટે Macrobenchmark નો ઉપયોગ કરો. અમારા profiles એ 12% methods ને આવરી લીધા હતા પરંતુ 94% startup time ને હેન્ડલ કર્યા હતા.

  2. DEX Layout Reordering સક્ષમ કરો આ તમારી Gradle properties માં માત્ર એક લાઇન છે. તે R8 ને તમારી DEX file માં startup classes ને એકસાથે ગ્રુપ કરવા માટે કહે છે. આનાથી page faults માં 30% થી 50% નો ઘટાડો થાય છે. જ્યારે classes એકસાથે રહે છે, ત્યારે સિસ્ટમ disk માંથી ઓછો બિનજરૂરી ડેટા લોડ કરે છે.

  3. Cloud Profiles નો ઉપયોગ કરો Google Play વપરાશકર્તાઓ પાસેથી profiles એકત્રિત કરે છે અને તેને નવા ઇન્સ્ટોલ્સમાં મોકલે છે. આનાથી તમારી ઝડપમાં વધુ વધારો થાય છે.

અમારા ટેસ્ટિંગના પરિણામો:

તમારા workflow માટે મહત્વની ટિપ્સ:

ઝડપી એપ્સ બનાવવા માટે આ લેયર્સનો ઉપયોગ કરો.

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