İzlemeyi başlatmak için CPU Profiler'ı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.
Şekil 1. CPU Profiler, yapılan kaydın durumunu, süresini ve türünü gösterir.
Uygulamanızla etkileşimde bulunun ve işiniz bittiğinde Durdur'u tıklayın. Profil aracı, Şekil 2'de gösterildiği gibi, izleme bilgilerini izleme bölmesinde otomatik olarak gösterir.
Şekil 2. Yöntem izi kaydettikten sonra CPU Profiler.
- Seçili aralık: İz bölmesinde, kaydedilen zamanın incelenecek bölümünü belirler. Bir izi ilk kez kaydettiğinizde CPU Profiler, CPU zaman çizelgesinde kaydınızın tüm uzunluğunu otomatik olarak seçer. Kaydedilen zaman aralığının yalnızca bir kısmı için iz verilerini incelemek amacıyla, vurgulanan bölgenin kenarlarını sürükleyin.
- Etkileşim bölümü:Bir zaman çizelgesi boyunca kullanıcı etkileşimi ve uygulama yaşam döngüsü olaylarını görüntüler.
- İleti dizileri bölümü: Zaman çizelgesi üzerindeki her ileti dizisi için ileti dizisi durumu etkinliğini (koşu, uyku vb.) ve Arama Grafiği'ni (veya Sistem İzleme'de izleme etkinliği grafiği) 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 Enter tuşuna basın.
- Analiz bölmesinde ek bilgileri görmek için bir ileti dizisi seçin. Birden çok ileti dizisi seçmek için Üst Karakter veya Ctrl (Mac'te Command) tuşunu basılı tutun.
- Analysis 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 mesaj dizisi veya yöntem çağrısıyla ilgili izleme verilerini gösterir. Bu bölmede, her yığın izlemeyi (analiz sekmelerini kullanarak) nasıl görüntüleyeceğinizi ve yürütme süresini nasıl ölçeceğinizi (zaman referansı açılır menüsünü kullanarak) seçebilirsiniz.
- Analiz bölmesi sekmeleri: İz ayrıntılarının nasıl gösterileceğini seçin. Her bir seçenekle ilgili ayrıntılı bilgi için İzlemeleri inceleme başlıklı makaleye bakın.
- Zaman referans menüsü: Her çağrının zamanlama bilgilerinin nasıl ölçüldüğünü belirlemek için aşağıdakilerden birini seçin (yalnızca Örnek/İzleme Java Yöntemlerinde desteklenir):
- Duvar saati süresi: Zamanlama bilgileri, geçen gerçek süreyi temsil eder.
- İleti dizisi süresi: Zamanlama bilgileri, ileti dizisi CPU kaynaklarını tüketmediğinde geçen sürenin herhangi bir bölümünü belirtir. Herhangi bir çağrıda, mesaj dizisi süresi her zaman gerçek duvar zamanından kısa veya bu süreye eşittir. Mesaj dizisi süresi, bir ileti dizisinin gerçek CPU kullanımının ne kadarının belirli bir yöntem veya işlev tarafından tüketildiğini daha iyi anlamanızı sağlar.
-
Filtre: İz verilerini işlev, yöntem, sınıf veya paket adına göre filtreler. Örneğin, belirli bir aramayla ilgili iz verilerini hızlı bir şekilde tanımlamak istiyorsanız arama alanına adı yazın. Hata grafiği sekmesinde, arama sorgusuyla eşleşen çağrı, paket veya sınıfı içeren çağrı yığınları vurgulanır. Yukarı aşağı ve Yukarı sekmelerinde, bu çağrı yığınları diğer iz sonuçlarına göre önceliklidir. Arama alanının yanındaki ilgili kutuyu işaretleyerek aşağıdaki seçenekleri de etkinleştirebilirsiniz:
- Normal ifade: Aramanıza normal ifadeler 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: Ctrl (Mac'te Command) tuşunu basılı tutarken W tuşuna basın veya fare tekerleğini kaydırın.
- Uzaklaştırma: Ctrl (Mac'te Command) tuşunu basılı tutarken S tuşuna basın ya da fare tekerleğini geri kaydırın.
- Sola kaydır: Boşluk tuşunu basılı tutarken A'ya basın veya fareyi sağa sürükleyin.
- Sağa kaydır: Boşluk tuşunu basılı tutarken D'ye basın veya 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
İzleme 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 çağrılan çağrı yığınını yakalar. Profil oluşturucu, uygulamanızın Java tabanlı kod yürütme işlemi hakkında zamanlama ve kaynak kullanım bilgilerini elde etmek için yakalanan veri kümelerini karşılaştırır.
Örneklenmiş tabanlı izlemede, doğası gereği uygulamanız bir çağrı yığınının yakalamasından sonra bir yönteme girer ve bir sonraki yakalamadan önce yöntemden çıkarsa bu yöntem çağrısı profilleyici tarafından günlüğe kaydedilmez. Bu kadar kısa yaşam döngüleri içeren izleme yöntemleriyle ilgileniyorsanız araçlı izleme özelliğini kullanmanız gerekir.
- Trace Java Methods:Her çalışma zamanının başında ve sonunda bir zaman damgası kaydetmek için uygulamanızı çalışma zamanında yönetir. Zaman damgaları, zamanlama bilgileri ve CPU kullanımı gibi yöntem izleme verileri oluşturmak için toplanır ve karşılaştırılır.
Her bir enstrümanın kullanılmasıyla ilişkili ek yükün, çalışma zamanı performansını ve profil verilerini etkileyebileceğini unutmayın. Bu, nispeten kısa yaşam döngülerine sahip yöntemler için daha da fark edilir. Buna ek olarak, uygulamanız kısa bir süre içinde çok sayıda yöntem çalıştırırsa profil oluşturucu dosya boyutu sınırını hızlı bir şekilde aşabilir ve başka izleme verileri kaydedemeyebilir.
- Örnek C/C++ Functions: Uygulamanızın yerel mesaj dizilerinin ö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.
Dahili olarak bu yapılandırma, uygulamanızın yerel kodunu izlemek için
simpleperf
kullanır.simpleperf
için belirli cihaz CPU'larından örnek alma veya örnekleme sürelerini yüksek doğrulukla belirtme gibi ek seçenekler belirtmek isterseniz komut satırındansimpleperf
özelliğini kullanabilirsiniz. - Trace Sistem Görüşmeleri: Uygulamanızın sistem kaynaklarıyla nasıl etkileşime geçtiğini incelemenize olanak tanıyan ayrıntılı bilgileri yakalar. İleti dizisi durumlarınızın tam zamanlamalarını ve sürelerini inceleyebilir, CPU'nuzun performans sorunlarını tüm çekirdeklerde görselleştirebilir ve analiz etmek için özel izleme etkinlikleri ekleyebilirsiniz.
Performans sorunlarını giderirken bu tür bilgiler ç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 kodunuzu kontrol ederek önemli kod rutinlerini profil düzenleyici zaman çizelgesinde 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 kontrol etmek içinTrace
sınıfını kullanın. Daha fazla bilgi için Uygulama kodunuzu kullanma bölümüne bakın.Bu iz yapılandırması
systrace
tarihinde oluşturuldu. CPU Profiler'da sağlananların ötesinde seçenekler belirtmek içinsystrace
komut satırı yardımcı programını kullanabilirsiniz.systrace
tarafından sağlanan sistem düzeyinde ek veriler, yerel sistem süreçlerini incelemenize ve atlanan veya gecikmiş karelerde sorun 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ını kullanabilirsiniz.
Kayıt yapılandırması oluşturma, düzenleme veya görüntüleme
Kayıt yapılandırmalarını, CPU Profiler'ı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şturur, düzenler ve görüntülersiniz.
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ölmesindeki yapılandırmayı 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şlemle, bazı varsayılan ayarları kullanarak yeni bir yapılandırma oluşturulur.
- 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ısaysa 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 Dosya boyutu sınırını megabayt (MB) cinsinden belirtin. Kaydı durdurduğunuzda, Android Studio bu verileri ayrıştırır ve profilleyici penceresinde görüntüler. Bu nedenle, sınırı artırır ve 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 yok sayılır. Ancak yine de cihazın her kayıttan sonra ne kadar veri topladığına dikkat etmeniz gerekir. Android Studio büyük izleme dosyalarını ayrıştırmada zorluk yaşayabilir. Örneğin, uygulamanız kısa bir süre içinde birçok örnek çağırırken kısa bir örnekleme aralığıyla veya örneklenmiş bir izleme kaydediyorsanız büyük izleme dosyalarını hızlı bir şekilde oluşturabilirsiniz.
- 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ği kaydetme
Uygulamanıza CPU Profiler'da CPU etkinliğinin kaydedilmesini başlatma ve durdurma olanağı sunmak için Debug
API'yi kullanabilirsiniz.
Uygulamanız, startMethodTracing(String tracePath)
çağırdığında CPU Profiler kaydı başlatırken stopMethodTracing()
çağırdığında CPU Profiler kaydı durdurur. Bu API kullanılarak tetiklenen CPU etkinliği kaydedilirken CPU profilleyici, etkin CPU kaydı yapılandırması olarak Debug API'yi gösterir.
Debug
API ile CPU etkinliğinin kaydedilmesini kontrol etmek için, kullanılan uygulamanızı Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtın.
API tarafından başlatılan kayıt, profillenebilir uygulamalarda desteklenir. Ancak Android Studio profilleri, 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'nin, CPU etkinliğinin kaydedilmesini başlatmak ve durdurmak için diğer yöntemlerden (ör. 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 ayarlar) ayrı olarak kullanılması amaçlanmıştır.
8 MB arabellek boyut sınırı nedeniyle Debug
API'deki startMethodTracing(String tracePath)
yöntemi, kaydı manuel olarak başlatmak/durdurmak için kısa aralıklar veya senaryolar için tasarlanmıştır. Uzun kayıt süreleri için Android Studio'daki profil kullanıcı arayüzünü kullanın.
Daha fazla bilgi için Uygulamanızı izleyerek izleme günlükleri oluşturma bölümüne bakın.
Uygulama başlatılırken CPU etkinliğini kaydet
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 izleme kaydı başlat'ın 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.