Bu kılavuzda, Systrace raporunda gezinme ve bu raporu yorumlama hakkında bilgi verilmektedir. Perfetto raporunu yorumlamak için Trace İşlemci belgelerine göz atın.
Tipik bir rapordaki öğeler
Systrace, bir dizi bölüm içeren bir HTML çıktısı dosyası oluşturur. Raporda her bir işleme ait iş parçacıkları listelenir. Belirli bir iş parçacığı kullanıcı arayüzü çerçeveleri oluşturursa raporda zaman çizelgesi boyunca oluşturulan kareler de belirtilir. Raporda soldan sağa gittiğinizde, zaman ileriye doğru geçer.
Rapor, yukarıdan aşağıya doğru aşağıdaki bölümleri içerir.
Kullanıcı etkileşimleri
İlk bölüm, uygulamanızda veya oyununuzda cihazın ekranına dokunma gibi belirli kullanıcı etkileşimlerini temsil eden çubuklar içerir. Bu etkileşimler yararlı zaman işaretçileri olarak işlev görür.
CPU etkinliği
Sonraki bölümde, her bir CPU içindeki iş parçacığı etkinliğini temsil eden çubuklar gösterilir. Çubuklar, uygulamanız veya oyununuz dahil olmak üzere tüm uygulamalardaki CPU etkinliğini gösterir.
CPU etkinliği bölümü genişletilebilir. Böylece her bir CPU'nun saat frekansını görebilirsiniz. Şekil 1'de daraltılmış CPU etkinliği bölümü örneği, Şekil 2'de ise saat frekansı gösteren genişletilmiş bir sürüm gösterilmiştir:
Sistem etkinlikleri
Bu bölümdeki histogramlar, doku sayıları ve belirli nesnelerin toplam boyutu gibi sistem düzeyindeki belirli etkinlikleri gösterir.
Daha yakından kontrol etmeye değer bir histogram, SurfaceView etiketli histogramdır. Sayı, görüntüleme ardışık düzenine geçirilen ve cihazın ekranında gösterilmek üzere bekleyen, oluşturulan çerçeve arabelleklerinin sayısını temsil eder. Çoğu cihazda çift veya üçlü arabelleğe alınmış olduğu için bu sayı neredeyse her zaman 0, 1 veya 2'dir.
VSync etkinlikleri ve kullanıcı arayüzü iş parçacığı değiştirme çalışması dahil olmak üzere, Surface Flinger sürecini gösteren diğer histogramlar Şekil 3'te gösterilmiştir:
Ekran çerçeveleri
Genellikle raporun en uzun kısmı olan bu bölümde, çok renkli bir çizgi ve ardından çubuk yığınları gösterilir. Bu şekiller, oluşturulan belirli bir iş parçacığının durumunu ve çerçeve yığınını temsil eder. Yığının her seviyesi, bir beginSection()
çağrısını veya uygulamanız ya da oyununuz için tanımladığınız özel bir iz etkinliğinin başlangıcını temsil eder.
Her çubuk yığınının üzerindeki çok renkli çizgi, belirli bir iş parçacığının zaman içindeki durum kümesini temsil eder. Çizginin her parçası aşağıdaki renklerden birini içerebilir:
- Yeşil: Çalışıyor
- İleti dizisi bir süreçle ilgili çalışmayı tamamlıyor veya bir kesintiye yanıt veriyor.
- Mavi: Çalıştırılabilir
- İleti dizisi çalıştırılabilir durumda, ancak şu anda planlanmamış.
- Beyaz: Uyku
- İş parçacığının mutex (karşılıklı dışlama) kilidinde engellenmiş olması nedeniyle, yapılacak bir şey yoktur.
- Turuncu: Kesintisiz uyku
- İleti dizisi G/Ç'de engellenmiş veya disk işleminin tamamlanmasını bekliyor.
- Mor: Kesintiye uğrayan uyku
- İş parçacığı başka bir çekirdek işleminde (genellikle bellek yönetiminde) engellenmiş.
Klavye kısayolları
Aşağıdaki tabloda, bir Sistem raporunu görüntülerken kullanılabilen klavye kısayolları listelenmiştir:
Anahtar | Açıklama | |
---|---|---|
Ç | İz zaman çizelgesini yakınlaştırın. | |
İz zaman çizelgesinde sola kaydırın. | ||
K | İz zaman çizelgesini uzaklaştırın. | |
G | İz zaman çizelgesinde sağa kaydırın. | |
E | İz zaman çizelgesini geçerli fare konumunda ortalayın. | |
A | Geçerli seçimi çerçeve içine alın. | |
1 | Şu anda etkin olan seçim modelini "seç" moduna getirin. Fare seçici araç çubuğunda görünen ilk düğmeye karşılık gelir (sağdaki resme bakın). |
|
2 | Geçerli olarak etkin olan seçim modelini "kaydırma" moduna getirin. Fare seçici araç çubuğunda görünen 2. düğmeye karşılık gelir (sağdaki resme bakın). |
|
3 | Geçerli olarak etkin olan seçim modelini "yakınlaştırma" moduna getirin. Fare seçici araç çubuğunda görünen 3. düğmeye karşılık gelir (sağdaki resme bakın). |
|
4 | Şu anda etkin olan seçim modelini "zamanlama" moduna değiştirin. Fare seçici araç çubuğunda görünen 4. düğmeye karşılık gelir (sağdaki resme bakın). |
|
T | Geçerli olarak seçilmiş görevin başında ızgarayı göster. | |
Üst Karakter + G | Geçerli olarak seçilmiş görevin sonunda ızgarayı göster. | |
Sol Ok | Şu anda seçili olan zaman çizelgesinde bir önceki etkinliği seçin. | |
Sağ Ok | Şu anda seçili olan zaman çizelgesinde bir sonraki etkinliği seçin. |
Performans sorunlarını inceleme
Bir Systrace raporuyla etkileşim kurarken kayıt süresi boyunca cihazın CPU kullanımını inceleyebilirsiniz. HTML raporunda gezinmeyle ilgili yardım almak için klavye kısayolları bölümüne bakın veya sağ üst köşedeki ? düğmesini tıklayın.
Aşağıdaki bölümlerde, performans sorunlarını bulmak ve düzeltmek için rapordaki bilgilerin nasıl inceleneceği açıklanmaktadır.
Performansla ilgili kaygıları belirleyin
Bir Systrace raporunda gezinirken aşağıdakilerden birini veya birkaçını yaparak performans sorunlarını daha kolay tespit edebilirsiniz:
- Zaman aralığının etrafına bir dikdörtgen çizerek ilgilendiğiniz zaman aralığını seçin.
- Cetvel aracını kullanarak sorunlu bir alanı işaretleyin veya vurgulayın.
- Görünüm Seçenekleri > VSync'i Vurgula'yı tıklayarak her bir ekran yenileme işlemini gösterin.
Kullanıcı arayüzü çerçevelerini ve uyarıları inceleme
Şekil 4'te gösterildiği gibi, bir Sistem raporu, kullanıcı arayüzü çerçeveleri oluşturan her bir süreci listeler ve zaman çizelgesi boyunca oluşturulan her kareyi belirtir. Saniyede 60 karelik sabit bir hızda kalmasını sağlamak için gereken 16,6 milisaniye içinde oluşturulan kareler yeşil çerçeve daireleri ile gösterilir. Oluşturulması 16,6 milisaniyeden uzun süren kareler sarı veya kırmızı çerçeve daireleri ile gösterilir.
![Çerçevenin yakınlaştırılmış görünümü](https://developer.android.google.cn/static/topic/performance/images/tracing/frame-unselected.png?authuser=5&hl=tr)
Bir çerçeve dairesi tıklandığında daire vurgulanır ve uyarılar da dahil olmak üzere sistemin bu çerçeveyi oluşturmak için yaptığı işle ilgili ek bilgiler sağlanır. Rapor, sistemin söz konusu çerçeveyi oluştururken çalıştırdığı yöntemleri de gösterir. Kullanıcı arayüzü duraklamasının olası nedenlerini belirlemek için bu yöntemleri araştırabilirsiniz.
![Sorunlu
çerçeve seçildi](https://developer.android.google.cn/static/topic/performance/images/tracing/frame-selected.png?authuser=5&hl=tr)
Yavaş bir kare seçtikten sonra raporun alt bölmesinde bir uyarı görebilirsiniz. Şekil 5'te gösterilen uyarıda, çerçeveyle ilgili temel sorunun ListView
geri dönüştürme ve yeniden bağlama işlemlerinde çok fazla zaman harcanması olduğu belirtilmiştir. İzde, sistemin bu sırada ne yaptığı hakkında daha fazla bilgi veren alakalı etkinliklere bağlantılar bulunur.
Aracın izinizde keşfettiği her uyarıyı ve cihazın her bir uyarıyı kaç kez tetiklediğini görmek için, Şekil 6'da gösterildiği gibi pencerenin en sağındaki Uyarılar sekmesini tıklayın. Uyarılar paneli, izde hangi sorunların oluştuğunu ve bu sorunların ne sıklıkla duraklamaya neden olduğunu görmenize yardımcı olur. Bu paneli, düzeltilmesi gereken hataların listesi gibi düşünebilirsiniz. Çoğunlukla, bir alanda yapılacak küçük bir değişiklik veya iyileştirme yapılması tüm uyarıları kaldırabilir.
![Uyarı sekmesi gösteriliyor](https://developer.android.google.cn/static/topic/performance/images/tracing/frame-selected-alert-tab.png?authuser=5&hl=tr)
Kullanıcı arayüzü iş parçacığında çok fazla iş yapıldığını görürseniz hangi yöntemlerin çok fazla CPU zamanı harcadığını belirlemek için aşağıdaki yaklaşımlardan birini kullanın:
- Hangi yöntemlerin performans sorunlarına neden olabileceği konusunda bir fikriniz varsa bu yöntemlere iz işaretçileri ekleyin. Daha fazla bilgi edinmek için kodunuzda özel etkinlikleri tanımlama ile ilgili kılavuza bakın.
- Kullanıcı arayüzü performans sorunlarının nereden kaynaklandığından emin değilseniz Android Studio'daki CPU Profilier'ı kullanın. İzleme günlükleri oluşturabilir ve ardından CPU Profiler'ı kullanarak bunları içe aktarıp inceleyebilirsiniz.