Perfetto

perfetto, aşağıdaki kullanıcılardan performans bilgileri toplamanıza olanak tanıyan bir araçtır: Android cihazlar: Android Debug Bridge (ADB). perfetto aracını adb shell perfetto ... komutunu kullanarak yapabilirsiniz. perfetto, çeşitli yöntemler kullanıyor cihazınızdan performans izlerini toplamak üzere aşağıdaki gibi kaynaklar:

  • Çekirdekteki bilgiler için ftrace
  • Hizmetler ve uygulamalardaki kullanıcı alanı ek açıklaması için atrace
  • Hizmetlerin ve uygulamaların yerel bellek kullanım bilgileri için heapprofd

Bu sayfada, perfetto yönteminin nasıl çağrılacağı ve sağlayabilirsiniz. Daha fazla bilgi için perfetto dokümanları.

Sözdizimi

Bu bölümde, farklı modlar için perfetto çağrısı yapmak üzere ADB'nin nasıl kullanılacağı açıklanmaktadır bir iz oluşturalım.

Veri kaynağı seçimi

perfetto, veri kaynaklarını belirleyen aşağıdaki iki modu içerir şunları yapmak için kullanılır:

  • açık mod: Veri kaynaklarının yalnızca bir alt kümesini (özellikle atrace) seçebilirsiniz ve ftrace. Ancak bu mod, systrace.
  • normal mod: yapılandırmasını bir protokol arabelleğine alır ve farklı veri kaynaklarını kullanarak perfetto işlevlerinden daha fazla yararlanabilirsiniz. atrace ve ftrace arasında.

Genel seçenekler

Aşağıdaki tabloda, perfetto etiketlerinden herhangi birinde kullanıldığında kullanılabilen seçenekler mod:

Tablo 1. Mevcut genel bilgilerin listesi perfetto aracı seçenekleri.

Option Açıklama
--background |
-d
perfetto, komut satırı arayüzünden hemen çıkar ve devam eder arka planda kaydediyor musunuz?
--background-wait | -D --background ile benzerdir ancak tüm işlemler için (30 saniyeye kadar) bekler veri kaynaklarının hangileri olduğunu kontrol edin. Çık başarılı bir onay varsa kod sıfırdır. aksi takdirde sıfır olmayan bir değer (hata veya zaman aşımı) belirlenebilir.
--alert-id Bu izlemeyi tetikleyen uyarının kimliği.
--config-id Tetikleyici yapılandırmasının kimliği.
--config-uid Yapılandırmayı kaydeden uygulamanın UID'si.
--subscription-id Bu izlemeyi tetikleyen aboneliğin kimliği.
--out OUT_FILE |
-o OUT_FILE

stdout için çıkış izleme dosyasına veya - öğesine giden yolu belirtir. perfetto, çıktıyı şu konumda açıklanan dosyaya yazar: gösterir. Çıkış biçimi şurada tanımlanan biçimle derlenir: AOSP trace.proto.

Not: çıktı dosyası olarak kaydedebilirsiniz. Genellikle dosyalar /data/misc/perfetto-traces klasör.

--upload Tamamlandığında, izi Proto izleme yapılandırmasında IncidentReportConfig mesajı var.
--no-guardrails Etkinleştirilirken aşırı kaynak kullanımına karşı korumaları devre dışı bırakır. Test sırasında --upload işareti.
--reset-guardrails Test için güvenlik barilerinin ve çıkışların kalıcı durumunu sıfırlar.
--rsave-for-bugreport bugreport_score içeren bir iz varsa > 0 çalışıyor, izlemeyi bir dosyaya kaydeder. Tamamlandığında yol çıkışını verir.
--query Hizmet durumunu sorgular ve okunabilir metin olarak yazdırır.
--query-raw --query etiketine benzer, ancak tracing_service_state.proto.
--help | -h perfetto aracı için yardım metnini yazdırır.

Açık mod

perfetto özelliğini açık modda kullanmak için genel söz dizimi aşağıdaki gibidir:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE

Aşağıdaki tabloda, perfetto özelliğini kullanırken kullanılabilecek seçenekler listelenmiştir: açık mod:

Tablo 2. Kullanılabilir perfetto listesi araç seçeneklerinden birini tercih edebilirsiniz.

Option Açıklama
--time TIME[s|m|h] |
-t TIME[s|m|h]
İz süresini saniye, dakika veya saat olarak belirtir. Örneğin, --time 1m 1 dakikalık iz süresini belirtir. Varsayılan süre 10 saniyedir.
--buffer SIZE[mb|gb] |
-b SIZE[mb|gb]
Halka arabellek boyutunu megabayt (mb) veya gigabayt (gb) cinsinden belirtir. Varsayılan parametre: --buffer 32mb.
--size SIZE[mb|gb] |
-s SIZE[mb|gb]
Maksimum dosya boyutunu megabayt (mb) veya gigabayt (gb) cinsinden belirtir. Ölçüt varsayılan ayar olarak perfetto yalnızca bellek içi halka arabelleği kullanır.
--app | -a Android (atrace) uygulama adı

Bu seçeneklerin ardından bir etkinlik tanımlayıcı listesi gelir:

Tablo 3. Şu etkinlik tanımlayıcısının listesi: açık mod.

Etkinlik Açıklama
ATRACE_CAT İz kaydetmek istediğiniz atrace kategorilerini belirtir. Örneğin, aşağıdaki komut, atrace kullanarak Window Manager'ı izler:
    adb shell perfetto --out FILE wm
    

Diğer kategorileri kaydetmek için şuraya bakın: liste atrace kategoride.

FTRACE_GROUP/FTRACE_NAME İz kaydetmek istediğiniz ftrace etkinliklerini belirtir. Örneğin, aşağıdaki komut sched/sched_switch etkinliklerini izler:
      adb shell perfetto --out FILE sched/sched_switch
      

Normal mod

perfetto normal modda kullanımıyla ilgili genel söz dizimi aşağıdaki gibidir:

 adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE

Aşağıdaki tabloda, perfetto özelliğini kullanırken kullanılabilecek seçenekler listelenmiştir: normal mod:

Tablo 4. Kullanılabilir perfetto listesi araç seçeneklerinden birini tercih edebilirsiniz.

Option Açıklama
--config CONFIG_FILE | -c CONFIG_FILE Bir yapılandırma dosyasının yolunu belirtir. Normal modda bazı yapılandırmalar, bir yapılandırma protokolü arabelleğinde kodlanabilir. Bu dosya Şurada tanımlanan protokol arabellek şemasına uygun olmalıdır: AOSP trace_config.proto.

Veri kaynaklarını DataSourceConfig TraceConfig üyesi, şurada tanımlandığı: AOSP data_source_config.proto.

--txt perfetto öğesine yapılandırma dosyasını pbtxt olarak ayrıştırması için talimat verir. Bu işareti yalnızca yerel test amaçlıdır ve üretim için etkinleştirin.

Desteklenen veri kaynakları

Bu bölümde, perfetto uygulamasının içerik oluşturmak için kullandığı farklı kaynaklar açıklanmaktadır izler.

ftrace

ftrace veri kaynağı, perfetto ürününün çekirdekteki etkinlikleri almasına olanak tanır.

Şu ayarı yaparak bu kaynağı etkinleştirin: ftrace_config arasında yer alır.

Etkinleştirilebilecek etkinlikler şunlardır:

  • Etkinliği planlama:

    • sched/sched_switch
    • sched/sched_wakeup
    • sched/sched_wakeup_new
    • sched/sched_process_exec
    • sched/sched_process_exit
    • sched/sched_process_fork
    • sched/sched_process_free
    • sched/sched_process_hang
    • sched/sched_process_wait
  • Dosya sistemi etkinlikleri:

  • atrace etkinlik

Cihazınıza, işletim sistemi sürümünüze veya çekirdeğinize bağlı olarak daha fazla etkinlik gerçekleşebilir kullanılabilir. Daha fazla bilgi için yapılandırma proto'larına bakın.

İşlem İstatistikleri

İşlem istatistikleri veri kaynağı, nasıl yönetildiğini öğreneceğiz.

process_stats_config ayarlayarak bu kaynağı etkinleştirin ve sys_stats_config arasında yer alır.

perfetto tarafından oluşturulan veriler şunları içerir:

Cihazınıza, işletim sistemi sürümüne ve çekirdeğe bağlı olarak daha fazla etkinlik kullanılabilir. Daha fazla bilgi edinmek için sys_stats ile ilgili yapılandırma protokolüne bakın ve process_stats.

heapprofd

heapprofd, yerel bellek kullanımının nedenlerini örneklemenize olanak tanır.

heapprofd_config ayarlayarak bu kaynağı etkinleştirin arasında yer alır. Bu ayar ProfilePackets üretir, (çağrı yığınının Java çerçeveleri dahil)

heapprofd hizmetinin nasıl kullanılacağı ile ilgili daha fazla bilgiyi şu adreste bulabilirsiniz: perfetto.dev

Diğer kaynaklar

Cihazınıza, işletim sistemi sürümünüze ve çekirdeğinize bağlı olarak kullanılabilir. Daha fazla bilgi edinmek için veri kaynağı yapılandırma proto'ları hakkında daha fazla bilgi edinin.

perfetto hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: perfetto.dev olarak değiştirin.