perfetto
, Android Debug Bridge (ADB) aracılığıyla Android cihazlardan performans bilgilerini toplamanızı sağlayan bir araçtır. adb shell perfetto ...
komutunu kullanarak perfetto
aracını çağırın.
perfetto
, cihazınızdan performans izlemelerini toplamak için çeşitli kaynaklar kullanır. Örneğin:
- Çekirdekten gelen bilgiler için
ftrace
- Hizmetler ve uygulamalardaki kullanıcı alanı notu için
atrace
- Hizmetlerin ve uygulamaların yerel bellek kullanımı bilgileri için
heapprofd
Bu sayfada, perfetto
çağrısının nasıl yapılacağı ve istenen çıkışı oluşturmak için nasıl yapılandırılacağı açıklanmaktadır. Daha fazla bilgi için perfetto
dokümanlarına bakın.
Sözdizimi
Bu bölümde, farklı modlarda perfetto
çağrısı yapmak ve iz oluşturmak için ADB'nin nasıl kullanılacağı açıklanmaktadır.
Veri kaynağı seçimi
perfetto
, izinizi kaydetmek için kullandığı veri kaynaklarını belirleyen aşağıdaki iki modu içerir:
- açık mod: Veri kaynaklarının yalnızca bir alt kümesini (özellikle
atrace
veftrace
) seçebilir. Ancak bu mod,systrace
'e benzer bir arayüz sunar. - normal mod: Yapılandırmasını bir protokol arabelleğinde alır ve
atrace
ileftrace
farklı veri kaynaklarını kullanarakperfetto
ürününün daha fazla işlevinden yararlanmanıza olanak tanır.
Genel seçenekler
Aşağıdaki tabloda, her iki modda da perfetto
kullanırken yararlanabileceğiniz seçenekler listelenmiştir:
Option | Açıklama |
---|---|
--background |
|
perfetto , komut satırı arayüzünden hemen çıkar ve izinizi arka planda kaydetmeye devam eder. |
--background-wait | -D
|
--background gibi ancak uygulamadan önce tüm veri kaynaklarının başlamasını bekler (30 saniyeye kadar). Başarılı bir onay alınırsa çıkış kodu sıfırdır; aksi takdirde (hata veya zaman aşımı) sıfır dışında bir değer olur.
|
--alert-id
|
Bu izlemeyi tetikleyen uyarının kimliği. |
--config-id
|
Tetikleyen yapılandırmanı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 |
|
Çıkış izleme dosyasının istenen yolunu veya Not: Çıkış dosyasının tam yol adını belirtmeniz gerekir. Genellikle dosyalar |
--upload
|
İşlem tamamlandığında, izi proto izleme yapılandırmasındaki IncidentReportConfig mesajıyla belirtilen pakete iletir. |
--no-guardrails
|
Test sırasında --upload işaretini etkinleştirirken aşırı kaynak kullanımına karşı korumaları devre dışı bırakır. |
--reset-guardrails
|
Test için korumaların ve çıkışların kalıcı durumunu sıfırlar. |
--rsave-for-bugreport
|
bugreport_score > 0 değerine sahip bir iz çalışıyorsa
izi bir dosyaya kaydeder. İşlem tamamlandığında yol çıktısını verir.
|
--query
|
Hizmet durumunu sorgular ve kullanıcılar tarafından okunabilir metin olarak yazdırır. |
--query-raw
|
--query yöntemine benzer, ancak proto olarak kodlanmış tracing_service_state.proto. baytlık metinleri yazdırır |
--help | -h
|
perfetto aracı için yardım metnini yazdırır.
|
Açık mod
Açık modda perfetto
kullanımı için genel söz dizimi şöyledir:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]... --out FILE
Aşağıdaki tabloda, açık modda perfetto
kullanırken yararlanabileceğiniz seçenekler listelenmiştir:
Option | Açıklama |
---|---|
--time TIME[s|m|h] |
|
İzleme süresini saniye, dakika veya saat cinsinden belirtir.
Örneğin --time 1m , 1 dakikalık iz süresini belirtir.
Varsayılan süre 10 saniyedir.
|
--buffer SIZE[mb|gb] |
|
Halka arabellek boyutunu megabayt (mb) veya gigabayt (gb) cinsinden belirtir.
Varsayılan parametre: --buffer 32mb .
|
--size SIZE[mb|gb] |
|
Maksimum dosya boyutunu megabayt (mb) veya gigabayt (gb) cinsinden belirtir. perfetto varsayılan olarak 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:
Etkinlik | Açıklama |
---|---|
ATRACE_CAT |
İzleme kaydetmek istediğiniz atrace kategorilerini belirtir.
Örneğin, aşağıdaki komut atrace kullanarak Windows Manager'ı izler:
adb shell perfetto --out FILE wm
Diğer kategorileri kaydetmek için |
FTRACE_GROUP/FTRACE_NAME |
İzleme 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
Normal modda perfetto
kullanımı için genel söz dizimi aşağıdaki gibidir:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
Aşağıdaki tabloda, perfetto
normal modda kullanılırken sunulan seçenekler listelenmiştir:
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, AOSP trace_config.proto 'de tanımlanan protokol arabelleği şemasına uygun olmalıdır.
AOSP |
--txt
|
perfetto işletim sistemine, yapılandırma dosyasını pbtxt olarak ayrıştırması talimatını verir. Bu işaret yalnızca yerel test için tasarlanmıştır ve üretim için etkinleştirmeniz önerilmez. |
Desteklenen veri kaynakları
Bu bölümde, perfetto
ürününün izinizi oluşturmak için kullandığı farklı kaynaklar açıklanmaktadır.
Ftrace
ftrace
veri kaynağı, perfetto
uygulamasının çekirdekten etkinlik almasına olanak tanır.
DataSourceConfig'de ftrace_config
ayarını yaparak bu kaynağı etkinleştirin.
Etkinleştirilebilecek etkinlikler şunlardır:
-
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:
Cihazınıza, işletim sistemi sürümünüze veya çekirdeğinize bağlı olarak daha fazla etkinlik mevcut olabilir. Daha fazla bilgi için config protos sayfasına bakın.
İşlem İstatistikleri
İşlem istatistikleri veri kaynağı, sistem ve bağımsız işlemler hakkında sorgulanmış sayaçlar almanıza olanak tanır.
DataSourceConfig'de process_stats_config
ve sys_stats_config
ayarlarını yaparak bu kaynağı etkinleştirin.
perfetto
ürününün oluşturduğu veriler şunları içerir:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
Cihazınıza, işletim sistemi sürümünüze ve çekirdeğinize bağlı olarak daha fazla etkinlik mevcut olabilir. Daha fazla bilgi edinmek için sys_stats
ve process_stats
yapılandırma protoslarına bakın.
heapprofd
heapprofd
, yerel bellek kullanımının nedenlerini örneklemenize olanak tanır.
DataSourceConfig'de heapprofd_config
ayarını yaparak bu kaynağı etkinleştirin. Bu ayar, çağrı yığınının Java çerçeveleri dahil olmak üzere ProfilePackets
kodunu oluşturur.
heapprofd
hizmetinin nasıl kullanılacağıyla ilgili ek bilgileri perfetto.dev
adresinde bulabilirsiniz.
Diğer kaynaklar
Cihazınıza, işletim sistemi sürümüne ve çekirdeğinize bağlı olarak daha fazla veri kaynağı kullanılabilir. Daha fazla bilgi için veri kaynağı yapılandırma protoslarına bakın.
perfetto
hakkında daha fazla bilgiyi perfetto.dev adresinde bulabilirsiniz.