Temel profiller ile başlangıç profilleri arasındaki fark

Bu belgede, Baseline Profiles ile Startup Profiles arasındaki fark açıklanmaktadır.

BaselineProfileRule testleri tarafından oluşturulan, insanlar tarafından okunabilir temel profil dosyalarını otomatik olarak yakalamak için Baseline Profile Gradle Plugin'i kullanabilirsiniz. Android Gradle Eklentisi (AGP), uygulamayı oluştururken bu insan tarafından okunabilir profil kurallarını, Android Paket Kiti (APK) veya Android App Bundle (AAB) içinde baseline.prof olarak paketlenmiş bir ikili biçimde derler.İkili profil 1,5 MB'tan küçük olduğu sürece Android Runtime (ART), cihaz üzerinde derleme için bu biçimi etkili bir şekilde kullanabilir.

Oluşturulan profil dosyaları genellikle startup-prof.txt ve baseline-prof.txt olarak adlandırılır.

temel profil

Temel Profil dosyası, ART'nin sık kullanılan kod yollarını önceden derlemek için kullandığı kapsamlı bir kural grubu içerir. Bu sayede uygulama başlatma işlemi optimize edilir, etkileşimdeki takılma azaltılır ve genel çalışma zamanı performansı iyileştirilir.

Baseline Profile dosyası genellikle Startup Profile'ınızda bulunan kuralların üst kümesidir. Bu dosya, uygulama başlatma optimizasyonu için gereken tüm kuralları (baselineProfile Gradle görevi aracılığıyla oluşturulur) ve diğer önemli kullanıcı yolculuklarına yönelik ek profilleri içerir. Örneğin, kaydırma ve farklı ekranlarda gezinme.

Bu başlangıç dışı kurallar, includeInStartupProfile yapılandırma alanının değerinden bağımsız olarak oluşturulur. Daha fazla bilgi için Temel Profil'e Genel Bakış başlıklı makaleyi inceleyin.

Başlangıç Profili

Başlangıç Profili dosyası, uygulamanızın başlangıç yolu için özel olarak optimize edilmiş kurallar içerir. Derleme sırasında D8 ve R8, Dalvik yürütülebilir (DEX) dosyaları oluşturmak için Java bayt kodunu kullanır. Hem D8 hem de R8, sınıf yüklemeyi hızlandırmak için kritik başlangıç kodunu birincil .dex dosyasına yerleştirerek DEX düzenini optimize etmek üzere başlangıç profillerini kullanır. En önemli performans artışlarını elde etmek için başlangıç kodu bu birincil .dex dosyasında yer almalıdır. Başlangıç kodunun toplam boyutu çok büyükse sonraki DEX dosyalarına taşar. Bu dosyalar genellikle gerekli olmayan sınıflar ve yöntemlerle doldurulur ve başlangıcı yavaşlatır.

Başlangıç Profili, DEX düzeni optimizasyonu için gerekli meta verileri sağlarken R8 kodu optimizasyonu bu sürece yardımcı olma konusunda oldukça etkili olabilir. R8, kullanılmayan kodu kaldırıp bayt kodunu küçülterek başlangıç mantığının toplam yer kaplama alanını azaltır. Bu azaltma, kritik kodun birincil .dex dosyasında kalma olasılığını artırarak taşmayı önler ve daha geniş bir Android sürümü aralığında daha verimli yürütme sağlar. Genel olarak, includeInStartupProfile değerini yalnızca uygulamanın ilk gösterimi için gerekli olan test senaryolarında true olarak ayarlamanız gerekir.

Daha fazla bilgi için Başlangıç Profillerine Genel Bakış başlıklı makaleyi inceleyin.