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 ਇਕੱਠੇ ਕਰਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਨਵੇਂ installs ਨੂੰ ਭੇਜਦਾ ਹੈ। ਇਹ ਤੁਹਾਡੀ ਰਫ਼ਤਾਰ ਦੇ ਫਾਇਦੇ ਨੂੰ ਹੋਰ ਵਧਾ ਦਿੰਦਾ ਹੈ।

ਸਾਡੀ ਟੈਸਟਿੰਗ ਦੇ ਨਤੀਜੇ:

ਤੁਹਾਡੇ workflow ਲਈ ਮਹੱਤਵਪੂਰਨ ਸੁਝਾਅ:

ਤੇਜ਼ ਐਪਸ ਬਣਾਉਣ ਲਈ ਇਹਨਾਂ ਲੇਅਰਾਂ ਨੂੰ ਇੱਕ ਦੂਜੇ ਦੇ ਉੱਪਰ ਲਗਾਓ।

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