Profil Rehberli Optimizasyon desteği, AGDE 22.2.71 sürümünde kullanıma sunulmuştur.
PGO ayarlarını bulma
Çözüm Gezgini'nden proje ayarlarınızı açın.
Şekil 1: Visual Studio Solution Explorer penceresi.
Platformunuzun bir Android yapılandırmasına ayarlandığından emin olun (örneğin, Android-arm64-v8a).
Sol taraftaki panelde, Yapılandırma Özellikleri > Genel'i seçin. PGO adlı mülk grubunu bulun.
Şekil 2: Proje Özellikleri iletişim kutusu.
Projede PGO Enstrümanlı Derlemeleri Etkinleştir
Projenize Instrumented adlı yeni bir yapılandırma ekleyin. Bu, test için geliştirme sırasında kullandığınız yapılandırmaya dayanır. Bu, geleneksel olarak optimize edilmiş derlemeniz olmalıdır (derleyici optimizasyon ayarlarını koruduğunuz sürece ek hata ayıklama özelliklerini etkinleştirebilirsiniz).
Mülk sayfası iletişim kutusunda Configuration Manager...'ı tıklayın.
Şekil 3: Configuration Manager iletişim kutusu.
Yapılandırma Yöneticisi iletişim kutusunda Etkin çözüm yapılandırması açılır menüsünü seçin ve <Yeni...> seçeneğini belirleyin.
Şekil 4: Yeni derleme yapılandırması oluşturma.
... ve yeni bir PGO Enstrümanlı yapılandırma oluşturun.
Şekil 5: Yeni Çözüm Yapılandırması iletişim kutusu.
Oyununuz için bir profil oluşturmak üzere PGO Enstrümanlı modda derlemeyi etkinleştirmek için Profil Rehberli Optimizasyon Modu ayarı seçenek listesinden Araçlı'yı seçin.
Şekil 6: PGO ayarlarının vurgulandığı Proje Özellikleri iletişim kutusu.
Profil Kılavuzlu Optimizasyon Profilleri ayarı için Android cihazınızda ham çıkış profili veri dosyasının yazılacağı klasörün yolunu girin.
Genellikle bu değer /data/data/<package
name>/cache/
gibi olmalıdır. Burada <package name>
, APK'nızın tam paket adıdır. Örneğin, com.google.sample.tunnel.
Bunun işleyiş şekli hakkında daha ayrıntılı bilgi için Clang belgelerini inceleyin.
PGO Enstrümantasyonlu profil verilerini cihazınıza yazma
PGO verileri genellikle bir işlem çıktığında PGO araç sistemi tarafından cihaza yazılır. Android'de uygulamalar çıkmaz, her zaman sonlandırılırlar. Bu, varsayılan "diske yaz" işlevinin hiçbir zaman tetiklenmediği ve uygulamanızın PGO verilerini manuel olarak yazmasını gerektireceği anlamına gelir.
Uygulamanızda, profil verilerini yazmak için açıkça __llvm_profile_write_file
çağrısı yapmalısınız. Bu sembol yalnızca PGO destekli derleme oluştururken kullanılabilir. Bu işlemi kolaylaştırmak için __llvm_profile_write_file
tanımlarken aşağıdaki kalıbı kullanmanızı öneririz.
#ifdef PGO_INSTRUMENT
extern "C" int __llvm_profile_write_file(void);
#else
extern "C" int __llvm_profile_write_file(void) { return 0; }
#endif
Bu işlevin çağrılması, profil verilerini daha önce belirttiğiniz klasöre yazar.
Profil çalıştırması gerçekleştirme
Profili oluşturmak için PGO araçları kullanılarak oluşturulan APK'nızı hedef cihazda çalıştırırsınız. Kodu istediğiniz gibi uyguladıktan ve __llvm_profile_write_file
işlevine çağrıyı tetikledikten sonra, uygulamanız profil verilerini depolama alanına yazar.
Bu noktada, derleyicinin kullanması için profilleri tekrar cihazdan kopyalayın.
Profil verilerini derleyici tarafından kullanılmak üzere hazırlama
Tek başına kullanıldığında, Android NDK'da Clang/LLVM'nin parçası olarak gönderilen llvm-profdata
komut satırı aracı, bir derlemenin profil destekli optimizasyonu sırasında profil verisi dosyalarını derleyici tarafından kullanılmak üzere hazırlamak için kullanılır.
AGDE, projenize eklediğiniz tüm profil verisi dosyalarını birleştirerek ve proje özelliği sayfalarındaki Profil Rehberli Optimizasyon Modu ayarı Optimize edilmiş olarak ayarlandığında bu dosyaları tüketerek bu adımı sizin için otomatik olarak gerçekleştirir.
Profil Rehberli Optimizasyon etkin halde proje oluşturma
Profillerinizi yakalayıp projenize eklediğinize göre derleyici, bu verileri kullanarak derlemenizin optimizasyonunu hassas bir şekilde ayarlayabilir.
PGO için Optimize Edilmiş Derlemeniz için yeni bir proje yapılandırması oluşturun. Böylece bu modda yalnızca gerektiğinde derleme yapabilirsiniz.
Şekil 7: PGO için Optimize Edilmiş Derleme yapılandırması oluşturma.
Proje özelliği sayfalarındaki Profil Rehberli Optimizasyon Modu ayarını Optimize edilmiş olarak ayarlayın.
Şekil 8: PGO Optimizasyon modunu Optimize edilmiş olarak ayarlama.
Dosyaları cihazdan kopyalayın ve Çözüm Gezgin'deki projenize ekleyin. Bu profil verisi dosyaları, PGO için Optimize Edilmiş yapılandırmanızı bir sonraki derlediğinizde derleyici tarafından alınır ve derleyicinin kodunuzu optimize etme şeklini ayarlamak için kullanılır.
Profil verisi dosyalarını, ADB'yi veya Android Cihaz Gezgini'ni kullanarak cihazdan projenize kopyalayabilirsiniz.
Profil Kılavuzlu Optimizasyonu AGDE dışında Kullanma
AGDE tarafından desteklenmeyen bir derleme sistemi kullanıyorsanız derlemenizi doğrudan düzenlemeniz gerekebilir. Clang'ın belgelerinde gerekli anahtarlar (-fprofile-generate
ve -fprofile-use
) ele alınmaktadır.
Oyununuz için bir ara katman yazılımı motoru kullanıyorsanız PGO'yu nasıl etkinleştireceğinizi (destekleniyorsa) öğrenmek için motorunuzun dokümanlarına bakın.