HAR için performans izleme

ATrace, harici crate'i kullanarak HAR için performans izleme gerçekleştirir tracing_android_trace.

HAR için izlemeyi etkinleştirme

harry-app referansı için performans izlemeyi etkinleştirmek istiyorsanız Cargo özelliğini harry-app-platform-specific/tracing-android etkinleştirin.

# crates/reference/harry-app/Cargo.toml

harry-sdv = ["harry-app-platform-specific/tracing-android", ...]

HAR'a özel izlemeler ekleme

  • Özel bir span eklemek için tracing sandığındaki bir span kullanın.
    let custom_trace = tracing::info_span!("custom_trace_span").entered()
    // code here will be traced
    drop(custom_trace)

Şekil 1. harry işleminden (HAR) örnek bir izlemeyi gösteren Perfetto kullanıcı arayüzü

DriverUI için performans izleme

DriverUI, Android sistem izlemeyi kullanır. Ek yapılandırma gerekmez.

DriverUI'ya özel izlemeler ekleme

Geliştirici Kılavuzu'nu kullanarak Kotlin koduna özel etkinlikler ekleyebilirsiniz.

İz toplama

AAOS'te izleri toplamak için Torq'u öneririz.

Torq'u kullanma

Torq, AAOS ve SDV'de performans izlerini toplamak için kullanılan bir CLI aracıdır.

  1. Torq deposunu klonlayın.

  2. Derleme ve çalıştırma için depodaki talimatları uygulayın:

export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000

Her iki sanal makinede de birleştirilmiş performans izleme verileri toplama

Display Safety iki sanal makinede çalıştığından her iki sanal makineden de aynı anda iz toplamak sorunları belirlemeye yardımcı olur.

  • Torq, Perfetto'nun traced_relay aracılığıyla birleştirilmiş izlemeleri destekler.
  • Birleşik izleme yakalamak için önce her iki sanal makinenin cid'sini belirleyin:
# Get the cid for SDV Media VM. For example: 3
adb -s <sdv_media_vm_serial> shell getprop ro.sdv.vsock_local_cid

# Get the cid for SDV IVI VM. For example: 4
adb -s <sdv_ivi_vm_serial> shell getprop ro.sdv.vsock_local_cid

Bu örnekte, geçiş olarak SDV-Media VM'yi (cid=3) kullanın.

# Configure your VMs for unified tracing
torq vm configure --primary <sdv_ivi_vm_serial> --primary-cid 4 --secondary <sdv_media_vm_serial>
# Collect a 7 second trace from the SDV IVI VM, it will now collect a unified trace
torq --serial <sdv_ivi_vm_serial> -d 7000

Örneğin:

Şekil 2. Her iki sanal makineden de süreçlerin yer aldığı örnek bir Birleştirilmiş İzleme'yi gösteren Perfetto kullanıcı arayüzü: harry (HAR) ve com.android.car.driverui (DriverUI).

Başlatma izi toplama

Başlatma performansını analiz etmek için başlatma izi toplamak üzere birkaç işareti etkinleştirmeniz gerekir.

  1. Başlatma izleri için SDV'ye özgü kalıcılık işaretini ayarlayın.

    export ANDROID_SERIAL=<your_device_serial>
    adb root
    adb shell setprop persist.debug.sdv.boottrace 1
    adb shell setprop persist.debug.perfetto.boottrace 1
    
  2. Çekirdek cmdline parametresini androidboot.fastboot.boottrace=enabled olarak ayarlayın.

# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled

record_android_trace cihazını kullan

Aşağıdakileri yapın:

# Set your adb device serial
export ANDROID_SERIAL=<your_device_serial>
# Run record_android_trace from the Android repo
cd /<your_repo_path>
build/envsetup.sh

$ANDROID_BUILD_TOP/external/perfetto/tools/record_android_trace --config $ANDROID_BUILD_TOP/system/software_defined_vehicle/core_services/samples/tracing/config/trace_cfg.pbtx