Meningkatkan Performa Aplikasi dengan Profil Baseline
Atau cara meningkatkan waktu startup hingga 40%
Diposting oleh Kateryna Semenova, DevRel Engineer; Rahul Ravikumar, Software Engineer; Chris Craik, Software Engineer
Mengapa waktu startup sangatlah penting?
Banyak aplikasi menemukan korelasi antara performa aplikasi dan interaksi pengguna. Orang-orang mengharapkan aplikasi yang responsif dan cepat dimuat. Waktu startup adalah salah satu metrik utama untuk menilai performa dan kualitas aplikasi.
Beberapa mitra kami menginvestasikan banyak waktu dan sumber daya untuk optimalisasi startup aplikasi. Sebagai contoh, lihat cerita Facebook .
Dalam postingan blog ini kita akan membahas Profil Baseline dan cara kerjanya dalam meningkatkan performa aplikasi dan library, termasuk waktu startup hingga 40% . Meskipun postingan blog ini berfokus pada startup, profil baseline juga meningkatkan jank secara signifikan.
Histori
Android 9 (API level 28) memperkenalkan profil optimalisasi ART di Play Cloud untuk meningkatkan waktu startup aplikasi. Rata-rata, kami melihat cold start aplikasi setidaknya 15% lebih cepat di berbagai perangkat bila Profil Cloud tersedia.
Bagaimana cara kerja Profil?
Saat aplikasi pertama kali diluncurkan setelah penginstalan atau update, kodenya berjalan dalam mode interpreted hingga di-JIT . Dalam APK, kode Java dan Kotlin dikompilasi sebagai bytecode dex, tetapi tidak sepenuhnya dikompilasi ke kode mesin (sejak Android 6), karena biaya penyimpanan dan pemuatan aplikasi yang dikompilasi sepenuhnya. Class dan metode yang sering digunakan dalam aplikasi, serta yang digunakan untuk startup aplikasi, direkam ke dalam file profil. Setelah perangkat memasuki mode idle, ART mengompilasi aplikasi berdasarkan profil-profil ini. Hal ini mempercepat peluncuran aplikasi berikutnya.
Dimulai dengan Android 9 (API level 28), Google Play juga menyediakan Profil Cloud. Saat aplikasi berjalan di perangkat, profil yang dihasilkan oleh ART diupload oleh aplikasi Play Store dan dikumpulkan di cloud. Setelah ada cukup profil yang diupload untuk suatu aplikasi, aplikasi Play akan menggunakan profil yang dikumpulkan untuk penginstalan berikutnya.
Masalah
Meskipun Profil Cloud sangatlah bagus bila tersedia, profil ini tidak selalu siap digunakan saat aplikasi diinstal. Mengumpulkan dan menggabungkan profil biasanya memakan waktu beberapa hari, yang merupakan masalah ketika banyak aplikasi diupdate setiap minggu. Banyak pengguna akan menginstal update sebelum Profil Cloud tersedia. Tim Google Android mulai mencari cara lain untuk memperbaiki latensi profil.
Solusi
Profil Baseline adalah mekanisme baru untuk menyediakan profil yang dapat digunakan di Android 7 (API level 24) dan yang lebih tinggi. Profil baseline adalah profil ART yang dihasilkan oleh plugin Android Gradle menggunakan format profil yang dapat dibaca manusia dan dapat disediakan oleh aplikasi serta library. Contohnya terlihat seperti ini:
HSPLandroidx/compose/runtime/ComposerImpl;->updateValue(Ljava/lang/Object;)V
HSPLandroidx/compose/runtime/ComposerImpl;->updatedNodeCount(I)I
HLandroidx/compose/runtime/ComposerImpl;->validateNodeExpected()V
PLandroidx/compose/runtime/CompositionImpl;->applyChanges()V
HLandroidx/compose/runtime/ComposerKt;->findLocation(Ljava/util/List;I)I
Contoh untuk library Compose.
Profil biner disimpan di lokasi tertentu dalam direktori aset APK (assets/dexopt/baseline.prof).
Profil Baseline dibuat pada waktu build, dikirimkan sebagai bagian dari APK ke Play, lalu dikirim dari Play ke pengguna saat aplikasi didownload. Mereka mengisi celah di pipeline Profil Cloud ART, saat Profil Cloud belum tersedia, dan secara otomatis bergabung dengan Profil Cloud saat sudah tersedia.
Diagram ini menampilkan alur kerja profil baseline dari pembuatan hingga pengiriman ke pengguna akhir.
Salah satu keuntungan terbesar dari Profil Baseline adalah bisa dikembangkan dan dievaluasi secara lokal sehingga developer dapat melihat peningkatan performa pengguna akhir yang realistis. Profil ini juga didukung pada versi Android yang lebih rendah (7 dan yang lebih tinggi) daripada Profil Cloud, yang hanya tersedia mulai Android 9.
Dampak
Developer aplikasi
Pada awal 2021, Google Maps beralih dari siklus rilis dua minggu ke satu minggu. Semakin sering mengupdate semakin sering pra-kompilasi lokal dihapus, dan semakin banyak pengguna yang mengalami peluncuran lambat tanpa Profil Cloud Play. Dengan menggunakan Profil Baseline, Google Maps meningkatkan waktu startup rata-rata sebesar 30% dan mengalami peningkatan yang sama dalam penelusuran sebesar 2,4% , keuntungan yang sangat besar untuk aplikasi yang sudah mapan.
Developer library
Kode dalam library sama seperti aplikasi - tidak sepenuhnya dikompilasi secara default, yang bisa menjadi masalah ketika melakukan pekerjaan yang signifikan di jalur kritis saat startup.
Jetpack Compose adalah library UI yang bukan bagian dari image sistem Android sehingga tidak sepenuhnya dikompilasi saat diinstal, tidak seperti kebanyakan kode toolkit Android View. Hal ini menyebabkan masalah performa, terutama untuk beberapa cold-launch aplikasi.
Untuk mengatasi masalah ini, Compose menggunakan installer profil . Hal ini akan mengirimkan aturan profil baseline yang mengurangi waktu startup dan jank di aplikasi Compose.
Halaman hasil penelusuran Google PlayStore telah ditulis ulang dengan Compose. Setelah memasukkan aturan Profil Baseline dari Compose, waktu render halaman hasil penelusuran awal dengan gambar meningkat sebesar ~40% .
Tim Android juga telah menambahkan Profil Baseline ke library AndroidX yang relevan. Hal ini menguntungkan semua aplikasi Android yang menggunakan library ini. Constraint Layout menemukan bahwa aturan profil pengiriman mengurangi waktu render frame animasi lebih dari satu milidetik .
Cara menggunakan Profil Baseline
Buat Profil Baseline khusus
Semua developer aplikasi dan library bisa memanfaatkan penyertaan Profil Baseline. Idealnya, developer membuat profil untuk penjelajahan pengguna yang paling penting untuk memastikan penjelajahan tersebut memiliki performa yang cepat secara konsisten terlepas dari apakah profil cloud tersedia. Lihat panduan detail tentang cara menyiapkan Profil Baseline untuk developer aplikasi dan library.
Update dependensi
Jika Anda belum siap membuat Profil Baseline untuk aplikasi sekarang, Anda masih bisa memanfaatkannya dengan mengupdate dependensi. Jika Anda membangun dengan Plugin Android Gradle 7.1.0-alpha05 atau yang lebih baru, Anda akan mendapatkan Profil Baseline yang disertakan dalam APK yang sudah disediakan oleh library (seperti Jetpack ). Google Play mengompilasi aplikasi Anda dengan profil ini pada waktu penginstalan. Anda bisa melengkapi profil ini sebagai bagian dari pembangunan aplikasi .
Ukur Peningkatan
Jangan lupa mengukur peningkatan. Ikuti langkah-langkah tentang cara mengukur startup dengan profil yang dibuat secara lokal.
Berikan masukan
Silakan berikan masukan dan ceritakan pengalaman Anda!
��
ReplyDeleteHome / Product / Disposable Clothing / Overalls / 3M OVERALLS For Asbestos Abatement
3M OVERALLS For Asbestos Abatement
FEATURES:
Heavyweight, disposable garments are what you’ll want to wear in hazardous, dirty environments.
SPECIFICATIONS:
Economical, comfortable, and breathable
Constructed of 60gsm SMS Fabric for comfort and resistance to hazardous liquids
Hood
Elastic wrists and ankles
Boot covers
Available in White, Type 5 / Type 6 fully compliant
Available in 3 sizes: XL-3XL
White Coverall: US $ 12.99 / Pc
Note: All items sold by Single Piece for your shopping convenience.
$12.99
3M OVERALLS For Asbestos Abatement quantity
1
Add to cart
SKU: PL-CA-100
Category: Overalls
Description Reviews (0)
DISPOSABLE PROTECTIVE LEAD ABATEMENT CLOTHING
Disposable Coveralls PolyGuard SMS W/Hood, Elastic Boot & Wrist.
COVERALLS For Asbestos and Lead Abatement, Remediation Activities
Coveralls Cat 3 TYPE 5-6 with hood and booties made of non-woven SMS Fabric with elastic polypropylene at the ankles, face, and waist and with Elastic wrist, as well as a self-adhesive flap for a better closing / sealing at the neck.
FEATURES:
Heavyweight, disposable garments are what you’ll want to wear in hazardous, dirty environments. OVERALLS For Asbestos Abatement
Informasi yang menarik sekali Slot Zeus
ReplyDelete