Bir izleri kaydetmeye başlamak için CPU Profil Aracı'nın üstündeki veya altındaki açılır menülerden bir kayıt yapılandırması seçin ve Kaydet'i tıklayın.
Uygulamanızla etkileşimde bulunun ve işiniz bittiğinde Durdur'u tıklayın. Profil düzenleyici, izleme bilgilerini Şekil 2'de gösterildiği gibi otomatik olarak izleme bölmesinde görüntüler.
- Seçili aralık: İzleme bölmesinde kaydedilen denetleme süresinin bölümünü belirler. Bir izi ilk kez kaydettiğinizde CPU Profiler, kaydınızın tüm uzunluğunu CPU zaman çizelgesinde otomatik olarak seçer. Kaydedilen zaman aralığının yalnızca bir bölümüne ait iz verilerini incelemek için vurgulanan bölgenin kenarlarını sürükleyin.
- Etkileşim bölümü: Kullanıcı etkileşimini ve uygulama yaşam döngüsü etkinliklerini bir zaman çizelgesi boyunca gösterir.
- İleti dizileri bölümü: Bir zaman çizelgesindeki her iş parçacığı için ileti dizisi durumu etkinliğini (koşma, uyku gibi) ve Çağrı Grafiği'ni (veya Sistem İzleme'deki izleme etkinlik grafiğini) görüntüler.
- Zaman çizelgesinde gezinmek için fare ve klavye kısayollarını kullanın.
- Bir ileti dizisini genişletmek veya daraltmak için ileti dizisi adını çift tıklayın ya da bir ileti dizisi seçiliyken Enter tuşuna basın.
- Analysis bölmesindeki ek bilgileri görmek için bir ileti dizisi seçin. Birden fazla iş parçacığı seçmek için ÜstKrktr veya Ctrl (Mac'te Command) tuşunu basılı tutun.
- Analiz bölmesinde ek bilgiler görmek için bir yöntem çağrısı (veya Sistem İzleme'de izleme etkinliği) seçin.
- Analiz bölmesi: Seçtiğiniz zaman aralığı ve iş parçacığı veya yöntem çağrısı için iz verilerini gösterir. Bu bölmede, her bir yığın izlemenin (analiz sekmelerini kullanarak) nasıl görüntüleneceğini ve (zaman referansı açılır menüsünü kullanarak) yürütme süresinin nasıl ölçüleceğini seçebilirsiniz.
- Analiz bölmesi sekmeleri: İz ayrıntılarının nasıl gösterileceğini seçin. Her seçenekle ilgili ayrıntılar için İzlemeleri inceleme bölümüne bakın.
- Zaman referansı menüsü: Her bir çağrının zamanlama bilgilerinin nasıl ölçüleceğini belirlemek için aşağıdakilerden birini seçin (yalnızca Sample/Trace Java Methods'da desteklenir):
- Duvar saati: Zamanlama bilgileri, geçen gerçek süreyi temsil eder.
- İş parçacığı süresi: Zamanlama bilgileri, gerçek geçen süreyi eksi iş parçacığının CPU kaynaklarını kullanmadığı herhangi bir bölümü temsil eder. Herhangi bir çağrı için iş parçacığı süresi, her zaman gerçek saat süresinden kısa veya ona eşittir. İş parçacığı süresini kullanmak, iş parçacığının gerçek CPU kullanımının belirli bir yöntem veya işlev tarafından ne kadar kullanıldığını daha iyi anlamanızı sağlar.
-
Filtre: İzleme verilerini işlev, yöntem, sınıf veya paket adına göre filtreler. Örneğin, belirli bir çağrıyla ilgili iz verilerini hızlı bir şekilde tanımlamak istiyorsanız arama alanına adı yazın. Flame grafiği sekmesinde, arama sorgusuyla eşleşen bir çağrı, paket veya sınıf içeren çağrı yığınları vurgulanır. Yukarıdan aşağıya ve Aşağıdan yukarıya sekmelerinde bu çağrı yığınları, diğer izleme sonuçlarına göre önceliklendirilir. Arama alanının yanındaki uygun kutuyu işaretleyerek aşağıdaki seçenekleri de etkinleştirebilirsiniz:
- Normal ifade: Aramanıza normal ifadeleri eklemek için bu seçeneği kullanın.
- Büyük/küçük harf eşleştir: Aramanız büyük/küçük harfe duyarlıysa bu seçeneği kullanın.
- Yakınlaştırma: W tuşuna basın veya Ctrl (Mac'te Command) tuşunu basılı tutarken fare tekerleğini kaydırın.
- Uzaklaştırma: S tuşuna basın veya Ctrl (Mac'te Command) tuşunu basılı tutarken fare tekerleğini geri kaydırın.
- Sola kaydırma: A tuşuna basın veya Boşluk tuşunu basılı tutarken fareyi sağa sürükleyin.
- Sağa kaydırma: D tuşuna basın veya Boşluk tuşunu basılı tutarken fareyi sola sürükleyin.
- Bir ileti dizisini genişletme veya daraltma: İleti dizisi adını çift tıklayın veya bir ileti dizisi seçiliyken Enter tuşuna basın.
Kayıt yapılandırması seçin
İz bilgilerini kaydetmeye başlamadan önce, yakalamak istediğiniz profil oluşturma bilgileri için uygun kayıt yapılandırmasını seçin:
- Örnek Java Yöntemleri: Uygulamanızın Java tabanlı kod yürütme işlemi sırasında sık aralıklarla uygulamanızın çağrı yığınını yakalar. Profil aracı, yakalanan veri kümelerini karşılaştırarak uygulamanızın Java tabanlı kod yürütme işlemiyle ilgili zamanlama ve kaynak kullanım bilgilerini türetir.
Örneklenmiş tabanlı izlemenin doğal bir sorunu, uygulamanız çağrı yığınının yakalanmasının ardından bir yönteme girip bir sonraki yakalamadan önce yöntemden çıkarsa bu yöntem çağrısının profil oluşturucu tarafından günlüğe kaydedilmemesidir. Bu kadar kısa yaşam döngüleri olan izleme yöntemleri kullanmak istiyorsanız araçlı takip yöntemini kullanmanız gerekir.
- Java Yöntemlerini İzle: Her yöntem çağrısının başında ve sonunda bir zaman damgası kaydetmek için uygulamanızı çalışma zamanında enstrümanlarla kaydeder. Zaman damgaları, zamanlama bilgileri ve CPU kullanımı dahil olmak üzere yöntem izleme verilerini oluşturmak için toplanıp karşılaştırılır.
Her bir yöntemin uygulanmasıyla ilgili ek verilerin çalışma zamanı performansını etkilediğini ve profil oluşturma verilerini etkileyebileceğini unutmayın. Bu durum, nispeten kısa yaşam döngüleri olan yöntemlerde daha da belirgindir. Ayrıca uygulamanız kısa sürede çok sayıda yöntem yürütürse profil aracı, dosya boyutu sınırını hızla aşabilir ve daha fazla izleme verisi kaydedemeyebilir.
- Örnek C/C++ İşlevleri: Uygulamanızın yerel iş parçacıklarının örneklenmiş izlerini yakalar. Bu yapılandırmayı kullanmak için uygulamanızı Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtmanız gerekir.
Bu yapılandırma, dahili olarak uygulamanızın yerel kodunu izlemek için
simpleperf
kullanır.simpleperf
için, belirli cihaz CPU'larından örnekleme veya örnekleme sürelerini yüksek doğrulukla belirtme gibi ek seçenekler belirtmek isterseniz komut satırındansimpleperf
öğesini kullanabilirsiniz. - İzleme Sistemi Çağrıları: Uygulamanızın sistem kaynaklarıyla nasıl etkileşimde bulunduğunu incelemenize olanak tanıyan ayrıntılı bilgileri yakalar. İş parçacığı durumlarınızın tam zamanlamalarını ve sürelerini inceleyebilir, CPU performans sorunlarının tüm çekirdeklerde nerede olduğunu görselleştirebilir ve analiz etmek için özel izleme etkinlikleri ekleyebilirsiniz.
Bu tür bilgiler, performans sorunlarını giderirken çok önemli olabilir. Bu yapılandırmayı kullanmak için uygulamanızı Android 7.0 (API düzeyi 24) veya sonraki sürümleri çalıştıran bir cihaza dağıtmanız gerekir.
Bu iz yapılandırmasını kullanırken, kodunuza enstrümantasyon ekleyerek profil oluşturucu zaman çizelgesindeki önemli kod rutinlerini görsel olarak işaretleyebilirsiniz. C/C++ kodunu kullanmak için
trace.h
tarafından sağlanan yerel izleme API'sini kullanın. Java kodunu kullanmak içinTrace
sınıfını kullanın. Daha fazla bilgi için Uygulama kodunuzu kullanma konusuna bakın.Bu iz yapılandırması,
systrace
üzerinde oluşturulmuştur. CPU Profil Aracı'nda sağlananların dışındaki seçenekleri belirlemek içinsystrace
komut satırı yardımcı programını kullanabilirsiniz.systrace
tarafından sağlanan sistem düzeyinde ek veriler, yerel sistem işlemlerini incelemenize ve atlanan veya geciken karelerle ilgili sorunları gidermenize yardımcı olabilir.Android 9 (API düzeyi 28) veya sonraki sürümleri çalıştıran cihazlarda cihazdaki sistem izlerini kaydetmek için Sistem İzleme adlı bir sistem uygulaması kullanabilirsiniz.
Kayıt yapılandırması oluşturma, düzenleme veya görüntüleme
Kayıt yapılandırmalarını, CPU Profil Aracı'nın üst kısmındaki kayıt yapılandırmaları açılır menüsünden Yapılandırmaları düzenle'yi seçerek açtığınız CPU Kayıt Yapılandırmaları iletişim kutusunda oluşturabilir, düzenleyebilir ve görüntüleyebilirsiniz.
Mevcut bir kayıt yapılandırmasının ayarlarını görüntülemek için CPU Kayıt Yapılandırmaları iletişim kutusunun sol bölmesinden kayıt yapılandırması seçin.
Yeni bir kayıt yapılandırması oluşturmak için aşağıdakileri yapın:
- İletişim kutusunun sol üst tarafındaki Ekle'yi tıklayın. Bu işlem, bazı varsayılan ayarlarla yeni bir yapılandırma oluşturur.
- Yapılandırmanıza bir ad verin.
- Bir İzleme Teknolojisi seçin.
- Örneklenmiş kayıt yapılandırmaları için Örnekleme aralığını mikrosaniye (μs) cinsinden belirtin. Bu değer, uygulamanızın çağrı yığınının her bir örneği arasındaki süreyi temsil eder. Belirttiğiniz aralık ne kadar kısa olursa kaydedilen veriler için dosya boyutu sınırına o kadar hızlı ulaşırsınız.
- Bağlı cihaza yazılan kayıtlı veriler için megabayt (MB) cinsinden Dosya boyutu sınırı'nı belirtin. Kaydı durdurduğunuzda Android Studio bu verileri ayrıştırır ve profilci penceresinde gösterir. Dolayısıyla, sınırı artırıp büyük miktarda veri kaydederseniz Android Studio'nun dosyayı ayrıştırması çok daha uzun sürer ve yanıt vermeyebilir.
Not: Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bağlı bir cihaz kullanıyorsanız iz verilerinin dosya boyutuyla ilgili bir sınır yoktur ve bu değer yoksayılır. Ancak yine de her kayıttan sonra cihazın ne kadar veri topladığına dikkat etmeniz gerekir. Android Studio büyük izleme dosyalarını ayrıştırırken sorun yaşayabilir. Örneğin, kısa bir örnekleme aralığıyla örneklenmiş bir izi veya uygulamanız kısa sürede birçok yöntem çağırırken araçlı iz kaydediyorsanız büyük izleme dosyalarını hızlı bir şekilde oluşturursunuz.
- Değişiklikleri kabul etmek ve diğer yapılandırmalarda değişiklik yapmaya devam etmek için Uygula'yı tıklayın. Uygulanan tüm değişiklikleri kabul etmek ve iletişim kutusunu kapatmak için Tamam'ı tıklayın.
Debug API ile CPU etkinliğini kaydetme
Uygulamanıza, CPU Profil Aracı'nda CPU etkinliği kaydını başlatma ve durdurma olanağı sağlamak için Debug
API'yi kullanabilirsiniz.
CPU Profil Aracı, uygulamanız startMethodTracing(String tracePath)
aracını çağırdığında kayda başlar ve uygulamanız stopMethodTracing()
yöntemini çağırdığında CPU Profil Aracı kaydı durdurur. Bu API kullanılarak tetiklenen CPU etkinliği kaydedilirken CPU profil aracı etkin CPU kayıt yapılandırması olarak Debug API'yi gösterir.
CPU etkinliğinin kaydını Debug
API ile kontrol etmek için donanımlı uygulamanızı Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtın.
API ile başlatılan kayıt, profillenebilir uygulamalarda desteklenir ancak Android Studio profil kullanıcıları, kayıt durumunu kullanıcı arayüzünde görüntülemek için hata ayıklaması yapılabilecek bir uygulama gerektirir.
Önemli: Debug
API, CPU etkinliği kaydını başlatmak ve durdurmak için kullanılan diğer yöntemlerden ayrı olarak kullanılmak üzere tasarlanmıştır. Örneğin, CPU Profiler grafik kullanıcı arayüzündeki düğmeler ve uygulama başlatılırken otomatik kayıt için kayıt yapılandırmasındaki ayar gibi.
8 MB'lık arabellek boyutu sınırı nedeniyle Debug
API'deki startMethodTracing(String tracePath)
yöntemi, kaydı manuel olarak başlatmanın/durdurmanın zor olduğu kısa aralıklar veya senaryolar için tasarlanmıştır. Daha uzun kayıt dönemleri için Android Studio'daki
profil oluşturucu kullanıcı arayüzünü kullanın.
Daha fazla bilgi için Uygulamanıza enstrümantasyon sayesinde iz günlükleri oluşturma bölümüne göz atın.
Uygulama başlatılırken CPU etkinliğini kaydetme
Uygulama başlatılırken CPU etkinliğini otomatik olarak kaydetmeye başlamak için aşağıdakileri yapın:
- Çalıştır > Yapılandırmaları Düzenle'yi seçin.
- Profil oluşturma sekmesinde Başlangıçta bir yöntem izlemeyi kaydetmeye başla seçeneğinin yanındaki kutuyu işaretleyin.
- Menüden bir CPU kayıt yapılandırması seçin.
- Uygula'yı tıklayın.
- Çalıştır > Profil'i seçerek uygulamanızı Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtın.